Yeşil çek
Panoya kopyalanan bağlantı

Vahşi doğadaki hayvanları tespit etmek için Ultralytics YOLO modelleri nasıl eğitilir?

Afrika Vahşi Yaşam Veri Kümesini kullanarak vahşi doğadaki hayvanları tespit etmek için YOLO modellerini nasıl eğiteceğinizi ve görünmeyen görüntüler üzerinde çıkarımlar yapmak için modeli nasıl kullanacağınızı öğrenin.

Gezegenimizin yaban hayatı, vızıldayan arılardan yükselen fillere kadar inanılmaz bir çeşitliliğe sahiptir ve bu biyolojik çeşitliliğin korunması dengeli bir ekosistemin sürdürülmesi için kilit öneme sahiptir. Ancak, habitat kaybı, kaçak avlanma ve iklim değişikliği nedeniyle koruma çabaları daha zorlu hale gelmektedir. Tüm bu faktörler yaban hayatı popülasyonlarını olumsuz etkilemektedir. 

Kameralı tuzak görüntülerini manuel olarak analiz etmek ve saha araştırmaları yapmak gibi geleneksel hayvan izleme yöntemleri yavaş olabilir ve çok fazla kaynak gerektirir. Bu çabalar genellikle geniş alanları ve büyük popülasyonları etkili bir şekilde kapsayamaz.

Bu sınırlamaların üstesinden gelmek için, yapay zeka (AI) yaban hayatının korunmasında etkili bir araç olarak kullanılabilir. Özellikle, aşağıdaki gibi bilgisayarla görme modelleri Ultralytics YOLO11 hayvanların gerçek zamanlı tanımlanmasını ve izlenmesini otomatikleştirmek için görüntüler ve videolar gibi görsel verileri analiz edebilir. 

YOLO11 tarafından desteklenen nesne algılama ve örnek segmentasyonu gibi bilgisayarla görme görevleri burada çok kullanışlıdır. Bu görevler, görsel verileri analiz ederek önemli verileri toplamamıza, ekolojik kalıpları belirlememize ve çevresel tehditlere daha etkili bir şekilde yanıt vermemize yardımcı olur.

Bu makalede, YOLO11 'i hayvanları tespit etmek için eğitme sürecinden geçeceğiz. Hadi başlayalım!

Ultralytics YOLO11 ile çalışmaya başlama

Eğitime geçmeden önce, YOLO11'i eğitmek ve kullanmak için ihtiyaç duyacağınız farklı kurulum seçeneklerine ve araçlarına bir göz atalım. 

İhtiyacınız olan ana araç, eğitim, nesneleri tespit etme ve çıkarımlar yapma gibi görevler için YOLO modelleriyle çalışmayı kolaylaştıran Ultralytics Python paketidir. Ultralytics paketini kullanmak için kodunuzu çalıştıracak bir ortam kurmanız gerekir ve aralarından seçim yapabileceğiniz çeşitli seçenekler vardır.

İşte geliştirme ortamınızı kurmak için en popüler seçeneklerden bazıları:

  • Komut satırı arayüzü (CLI): Terminal olarak da bilinen CLI, komutlar yazarak bilgisayarınızla etkileşim kurmanızı sağlayan metin tabanlı bir araçtır. Düğmelere tıkladığınız ve bir fare kullandığınız grafik arayüzlerin (GUI) aksine, CLI programları çalıştırmak veya görevleri yürütmek için metin talimatları yazmanızı gerektirir.
  • Jupyter Not Defterleri: Bu not defterleri, hücre adı verilen küçük parçalar halinde kod yazmanıza ve çalıştırmanıza olanak tanır. Etkileşimlidir, yani kodunuzun çıktısını hemen görebilirsiniz, bu da test etmeyi ve hata ayıklamayı kolaylaştırır.
  • Google Colab: Google Colab, Jupyter Notebooks gibi çalışan ancak güçlü GPU'lara ücretsiz erişim sunan bulut tabanlı bir platformdur. Kurulumu kolaydır ve bilgisayarınıza herhangi bir şey yüklemeniz gerekmez.

Ortamınızı kurmak için resmi Ultralytics belgelerinde keşfedebileceğiniz başka seçenekler olsa da, yukarıda belirtilen üç seçenek çok az kurulum gerektirir ve kullanımı kolaydır, bu da onları hızlı bir şekilde başlamak için ideal hale getirir. 

Bu eğitimde, Google Colab, Jupyter Notebooks veya basit bir Python dosyası kullanarak YOLO11 'in nasıl kurulacağını ve eğitileceğini göstereceğiz, çünkü adımlar tüm bu ortamlarda çok benzerdir.

Afrika Yaban Hayatı Veri Setini Anlamak

Bir geliştirme ortamı seçtikten sonra, YOLO11 'i özellikle vahşi hayvanları tespit etmek üzere eğitmek için, etiketli görüntülerden oluşan yüksek kaliteli bir veri kümesine ihtiyacımız var. Her görüntü hayvanların nerede olduğunu ve ne tür olduklarını açıkça göstermelidir, böylece model denetimli öğrenme yoluyla onları tanımayı öğrenebilir.

Bu eğitimde, Afrika Vahşi Yaşam Veri Seti'ni kullanacağız. Ultralytics Python paketi tarafından desteklenmektedir ve özellikle Afrika ekosistemlerinde yaygın olarak bulunan hayvanları tespit etmek için tasarlanmıştır. Dört temel türün açıklamalı görüntülerini içerir: bufalolar, filler, gergedanlar ve zebralar.

Şekil 1. Afrika Yaban Hayatı Veri Kümesine bir bakış.

İşte Afrika Yaban Hayatı Veri Setinin bazı temel özellikleri:

  • Ölçek: Veri kümesi üç alt kümeye bölünmüş 1504 görüntüden oluşmaktadır: eğitim için 1052, doğrulama için 225 ve test için 227. Bu bölünme, modelin etkili bir şekilde öğrenmesini ve kapsamlı bir şekilde değerlendirilmesini sağlar.

  • Sorunsuz entegrasyon: Ultralytics , veri kümesi yollarını, sınıfları ve diğer ayrıntıları tanımlayan bir YAML yapılandırma dosyası sağlayarak YOLO modellerini eğitirken kullanımı kolaylaştırır.

  • Açık lisans: Bu veri seti, şeffaflığı ve işbirliğini teşvik eden AGPL-3.0 lisansı altında dağıtılmaktadır.

Hayvan tespiti için Ultralytics YOLO11 eğitimi

Afrika Yaban Hayatı Veri Kümesini keşfettiğimize göre, görüntülerdeki hayvanları tespit etmek için bir YOLO11 modelini eğitmeye başlayabiliriz. Bu süreç, geliştirme ortamının kurulmasını, YOLO11 modelinin eğitilmesini ve modelin performansının değerlendirilmesini içerir.

Adım 1: Ortamın kurulması

Başlamak için, modeli eğitmek ve test etmek için bir ortam hazırlayacağız. Tercihinize bağlı olarak Google Colab, Jupyter Notebooks veya basit bir Python dosyası kullanılabilir. Buna göre yeni bir Google Colab not defteri, Jupyter Not Defteri veya Python dosyası oluşturun.

Google Colab kullanıyorsanız, ortam varsayılan olarak bir CPU (Merkezi İşlem Birimi) üzerinde çalışır ve bu da eğitimi yavaşlatabilir. Süreci hızlandırmak için, özellikle de daha büyük modellerde, çalışma zamanını GPU kullanacak şekilde değiştirebilirsiniz. Google Colab'da, menüdeki "Çalışma Zamanı" sekmesine gidebilir, "Çalışma zamanı türünü değiştir "i seçebilir ve donanım hızlandırıcıyı bir GPU 'ya (tercihen bir T4 GPU) ayarlayabilirsiniz. Bu, eğitim sürelerini kısaltmak için önemlidir.

Ardından, hangi ortamı kullandığınızdan bağımsız olarak, Ultralytics Python paketini yüklemeniz gerekir. Not defteri tabanlı bir ortamGoogle Colab veya Jupyter) kullanıyorsanız, aşağıdaki komutu başında ünlem işareti (!) olacak şekilde çalıştırın

pip install ultralytics

Adım 2: YOLO11 'in yüklenmesi ve veri setinin hazırlanması

Ultralytics paketi yüklendikten sonra, bir sonraki adım YOLO11 modelini yüklemek ve veri kümesini eğitim için hazırlamaktır. İlk olarak, genel nesne algılama görevleri üzerinde önceden eğitilmiş olan YOLO11 modelini yüklüyoruz. Bu önceden eğitilmiş model, çeşitli nesnelerin nasıl tespit edileceğini zaten öğrendiği için bize iyi bir başlangıç noktası sağlar.

Ardından, görüntüler ve etiketler hakkında bilgi içeren bir YAML dosyası kullanarak veri kümesini belirleriz. Bu dosya modele veri kümesini nerede bulacağını ve hangi nesneleri tanımayı öğrenmesi gerektiğini söyler. 

Afrika Vahşi Yaşam Veri Seti Ultralytics paketi tarafından desteklenmektedir, bu nedenle eğitimi başlattığınızda otomatik olarak indirilir ve sizi manuel olarak ayarlama zahmetinden kurtarır.

Veri kümesi hazır olduğunda, model eğitime başlar. Model, görüntülerdeki hayvanları tanıma becerisini geliştirmek için birden fazla dönem boyunca eğitim adı verilen bir süreçle veri kümesini birkaç kez gözden geçirecektir. Bu işlem sırasında, görüntüler işlenmek üzere tutarlı bir boyuta yeniden boyutlandırılır ve model bir seferde toplu iş olarak bilinen belirli sayıda görüntü ile çalışır. Bu, modelin daha verimli bir şekilde öğrenmesine yardımcı olur.

Kısacası, model yüklenir, veri kümesi otomatik olarak indirilir ve aşağıdaki kod parçacığı çalıştırıldığında Afrika Vahşi Yaşam Veri Kümesine dayalı olarak hayvanları tespit etmek için eğitim çalışmaya başlar.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

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

Adım 3: YOLO11 eğitim kılavuzu

Yukarıdaki kod parçacığı çalıştırıldığında, model verdiğimiz ayarlara göre eğitime başlar. Kod aracılığıyla modele eğitim görüntülerinden 30 kez geçmesini söyledik. Bu, modelin veri kümesindeki tüm görüntülere 30 kez bakacağı ve her seferinde biraz daha fazla öğreneceği anlamına gelir.

Bir hayvanın nasıl çizileceğini öğrenmeye çalıştığınızı düşünün. İlk çizdiğinizde iyi görünmeyebilir, ancak tekrar tekrar pratik yaptıktan sonra daha iyi olmaya başlarsınız. Her tekrar denediğinizde, neyin yanlış gittiğini öğrenir ve onu düzeltirsiniz. Model için her dönemin yaptığı şey budur - görüntülere bakar, hatalar yapar, onlardan öğrenir ve her seferinde hayvanları tanımada daha iyi hale gelir.

Eğitim kodu başarılı bir şekilde çalışıyorsa, eğitim ilerledikçe aşağıdaki çıktıyı göreceksiniz:

  • Eğitim kurulumu: İlk bölümde Ultralytics, PyTorch sürümü ve kullanılan donanım (bu durumdaCPU ) ile birlikte model (yolo11n.pt), yığın boyutu, epoklar ve görüntü boyutu dahil olmak üzere eğitim yapılandırması gösterilmektedir.
  • Model özeti: Modelin ne kadar büyük olduğunu gösteren katman ve parametre sayısı gibi modelin karmaşıklığı hakkında bilgi sağlar.
  • Optimize edici ve öğrenme oranı: Modelin eğitim sırasında parametrelerini nasıl ayarladığını kontrol eden optimize ediciden (örneğin AdamW) ve öğrenme oranından bahseder.
  • Veri kümesi taraması: Model veri kümesini tarayarak kaç görüntünün geçerli ve eğitim için hazır olduğunu gösterir. Veri kümesinde herhangi bir sorun olmadığını doğrular.
  • Eğitim ilerlemesi: Çıktı, her epoktan (eğitim döngüsü) sonra güncellenir ve modelin ne kadar iyi öğrendiğini gösteren temel kayıp değerleriyle (box_loss, cls_loss, dfl_loss) birlikte eğitim ilerlemesini gösterir.
  • Performans ölçümleri: Her dönemden sonra, hassasiyet, geri çağırma ve mAP (ortalama ortalama hassasiyet) gibi performans ölçümlerini göreceksiniz. Bu değerler, modelin nesneleri tespit etme ve sınıflandırma konusunda ne kadar doğru olduğunu gösterir.
  • GPU bellek kullanımı: Bir GPU kullanıyorsanız, çıktı donanım kullanımını izlemek için bellek kullanımını gösterir.
Şekil 2. Model eğitimi çalışırken göreceğiniz çıktı.

Adım 4: Özel eğitimli modelin performansının değerlendirilmesi

Eğitim süreci tamamlandıktan sonra, modelin performans ölçümlerini inceleyebilir ve doğrulayabilirsiniz. Google Colab'da, temel performans göstergelerini gösteren günlükleri bulabileceğiniz "runs" klasörüne, ardından "detect" klasörüne ve son olarak "train" klasörüne gidebilirsiniz.

Python ortamındaki kullanıcılar için eğitim sonuçları varsayılan olarak geçerli çalışma dizininizdeki "runs/train/" dizinine kaydedilir. Her eğitim çalışması, eğitimle ilgili günlükleri ve diğer çıktıları bulabileceğiniz yeni bir alt dizin (örn. runs/train/exp, runs/train/exp2, vb.) oluşturur.

CLI kullanıyorsanız, eğitim günlükleri ve deney ayrıntılarıyla ilgili yolları ve diğer yapılandırmaları görüntülemenize veya değiştirmenize olanak tanıyan "yolo settings" komutunu kullanarak bu sonuçlara ve ayarlara kolayca erişebilirsiniz.

Günlükler arasında, model eğitim sürecinin ne kadar iyi gittiğini görmek için bakabileceğiniz bazı grafikler de bulacaksınız. Eğitim tamamlandıktan sonra oluşturulan bu grafikler, modelin daha az hata yaparak ve daha doğru hale gelerek zaman içinde gelişip gelişmediğini gösterir. 

Eğitim sırasında kaybın (modelin tahminleri ile gerçek değerler arasındaki fark) nasıl azaldığını ve doğruluğun nasıl arttığını göstererek modelin ilerlemesini takip ederler. Bu, modelin hayvanları tanımayı ne kadar iyi öğrendiğini ve eğitimin sonunda ne kadar geliştiğini anlamanıza yardımcı olur.

Şekil 3. Modelinizi değerlendirmek için analiz edebileceğiniz grafiklere bir örnek.

Temel performans değerlendirme metrikleri

Ayrıca, modelin performansını değerlendirmek için kullanabileceğiniz bazı metriklere daha yakından bakın:

  • Ortalama ortalama hassasiyet (mAP): Bu metrik, farklı geri çağırma seviyelerindeki hassasiyet puanlarının ortalamasını alarak modelin tüm sınıflardaki hayvanları tespit etmedeki genel doğruluğunu ölçer.
  • Kesinlik: Bu, doğru pozitif tespitlerin sayısının yapılan toplam tespit sayısına bölünmesiyle hesaplanan doğru tespitlerin yüzdesini temsil eder.
  • Hatırlama: Model tarafından doğru şekilde tanımlanan görüntülerdeki gerçek hayvanların yüzdesini gösterir ve ilgili tüm örnekleri yakalama yeteneğini yansıtır.

Bu değerlendirme ölçütleri, modeli gerçek dünya uygulamalarında kullanmadan önce doğruluğunu artırmak için ince ayar yapılmasına yardımcı olabilir.

Özel eğitimli YOLO11 modelinizi kullanarak çıkarımları çalıştırma

Artık YOLO11'i eğittiğimize ve değerlendirdiğimize göre, görüntüleri analiz etmek ve çıkarımlar yapmak için kullanma zamanı geldi. Veri setindeki test görüntülerini veya farklı kaynaklardan yeni görüntüleri kullanabilirsiniz.

Modeli test veri kümesindeki bir görüntü üzerinde çalıştırmak için aşağıdaki kod parçacığını kullanacağız. Ultralytics kütüphanesinden gerekli modülleri içe aktarır. Ardından, sonuçlar dizininde depolanan en iyi model ağırlıkları dosyasının ("best.pt") yolunu tanımlar. Özel eğitimli YOLO11 modeli bu ağırlıklar kullanılarak yüklenir. 

Bundan sonra, Afrika Vahşi Yaşamı test veri kümesinden bir görüntüye giden yol ayarlanır. Model, nesne algılama için bu görüntüye uygulanır, sonuçlar oluşturulur ve çıktı (algılanan nesneler veya ek açıklamalar gibi) kaydedilir.

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) 

Aşağıda gösterilen çıktı görüntüsü runs/detect dizini içinde bulunan "predict" klasörüne kaydedilecektir. Sonraki testler için, görüntüleri saklamak üzere "predict2", "predict3" ve benzeri yeni klasörler oluşturulacaktır.

Şekil 4. Bir test görüntüsü üzerinde ince ayarlı YOLO11 modelini kullanarak bir çıkarım çalıştırma.

Farklı kaynaklardan gelen görselleri test etmek için aşağıdaki kodu kullanabilirsiniz. Biz Pexels'ten bir görsel kullandık. Siz de aynı görseli veya ilgili başka bir görseli kullanabilirsiniz.

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)

Aşağıda gösterilen çıktı görüntüsü uygun klasöre kaydedilecektir.

Şekil 5. Görünmeyen bir görüntü üzerinde ince ayarlı YOLO11 modelini kullanarak vahşi yaşamı tespit etme.

Yaban hayatının korunması için yapay zeka: Gerçek dünya uygulamaları

YOLO11 gibi modeller hayvanları otomatik olarak tespit ve takip edebilir, bu da çeşitli pratik uygulamalara olanak tanır. İşte Vision AI'nın vahşi yaşamı koruma çabalarını desteklemek için kullanılabileceği bazı temel alanlara bir bakış:

  • Tür izleme: Görsel yapay zeka, türleri doğru bir şekilde tanımlamak, popülasyonları saymak ve zaman içindeki hareketlerini izlemek için görüntüler ve videolar gibi görsel verileri işlemek için kullanılabilir.
  • Akıllı kamera uyarıları: Uzak bölgelerde, hayvanları sürekli olarak sınıflandırmak ve gerçek zamanlı uyarılar göndermek için bilgisayar görüşü kullanılabilir, böylece yaban hayatı yetkililerinin anormal hayvan davranışları veya insan-yaban hayatı çatışmaları gibi tehditlere hızlı bir şekilde yanıt vermesi sağlanabilir.
  • Davranış analizi: Görsel yapay zeka sistemleri göçü, beslenme alışkanlıklarını ve sosyal etkileşimleri izleyerek türler arası dinamikler hakkında kapsamlı bilgiler sağlayabilir.
  • Kaçak avcılığın önlenmesi: Riskli noktaları belirlemek için makine öğrenimi ve geçmiş verilerden yararlanırken, yetkisiz insan varlığını ve kaçak avlanma belirtilerini tespit etmek için Vision AI'dan yararlanılabilir.

Önemli çıkarımlar

YOLO11 gibi bilgisayarla görme modelleri, hayvan tespit ve takibini otomatikleştirerek yaban hayatının korunmasında önemli bir rol oynayabilir. Vision AI ile çeşitli kaynaklardan gelen büyük hacimli görüntü ve videoları işleyerek doğru yaban hayatı değerlendirmeleri yapmayı mümkün kılıyoruz. 

Özellikle Ultralytics YOLO11, gerçek zamanlı nesne algılama için mükemmel bir seçimdir, bu da onu kaçak avlanma karşıtı gözetim, davranış analizi ve ekosistem izleme gibi görevler için mükemmel bir uyum haline getirir. Yapay zeka odaklı modelleri koruma çabalarına dahil ederek türleri daha iyi koruyabilir, biyoçeşitlilik takibini iyileştirebilir ve nesli tükenmekte olan vahşi yaşamı korumak için daha bilinçli kararlar verebiliriz.

Bilgisayarla görme hakkında daha fazla bilgi edinmek için topluluğumuza katılın ve GitHub deposunu keşfedin. Çözüm sayfalarımızda sağlık hizmetlerinde yapay zeka ve üretimde bilgisayarla görme ile ilgili daha fazla uygulama keşfedin. Vision AI ile çalışmaya başlamak için Ultralytics lisanslama seçeneklerine göz atın.

LinkedIn logosuTwitter logosuFacebook logosuKopya-bağlantı sembolü

Bu kategoride daha fazlasını okuyun

Yapay zekanın gelecekteki
adresini birlikte inşa edelim!

Makine öğreniminin geleceği ile yolculuğunuza başlayın