[{"data":1,"prerenderedAt":301},["ShallowReactive",2],{"blog-tr-\u002Fblog\u002Fceviz-agaci-tac-tespiti-yolov8-seg-model-egitimi":3},{"id":4,"title":5,"body":6,"description":281,"extension":282,"meta":283,"navigation":296,"path":297,"seo":298,"stem":299,"__hash__":300},"blog\u002Fblog\u002Fceviz-agaci-tac-tespiti-yolov8-seg-model-egitimi.md","Ceviz Ağacı Taç Tespiti: YOLOv8-seg ile Özel Model Eğitimi",{"type":7,"value":8,"toc":266},"minimark",[9,14,28,32,35,57,69,73,76,102,109,113,116,147,150,154,157,177,184,187,191,202,209,213,224,228,236,241],[10,11,13],"h2",{"id":12},"problem","Problem",[15,16,17,22,23,27],"p",{},[18,19,21],"a",{"href":20},"\u002Fblog\u002Fplantfarm-scan-getek-ile-drone-ve-yapay-zeka-agac-analizi","PlantFarm Scan","'in her şeyi tek bir adıma dayanıyor: ortofotodaki her ağacın tacını doğru bulmak. Taç yanlışsa, o ağacın NDVI'ı da, trendi de yanlış. Bu yazıda bu adım için ",[24,25,26],"strong",{},"Walnut AI"," adını verdiğimiz modeli nasıl eğittiğimizi anlatıyoruz.",[10,29,31],{"id":30},"neden-instance-segmentation","Neden Instance Segmentation?",[15,33,34],{},"Üç seçenek vardı:",[36,37,38,45,51],"ul",{},[39,40,41,44],"li",{},[24,42,43],{},"Nesne tespiti (bounding box)",": Ağacı bir kutuyla bulur. Ama kutunun köşeleri toprak ve çim içerir; ağaç bazlı NDVI ölçümünü bozar.",[39,46,47,50],{},[24,48,49],{},"Semantik segmentasyon",": Her pikseli \"ağaç\" ya da \"değil\" diye etiketler. Birbirine değen iki ağacı ayıramaz.",[39,52,53,56],{},[24,54,55],{},"Örnek segmentasyonu (instance segmentation)",": Her ağacı ayrı bir nesne olarak, piksel düzeyindeki maskesiyle bulur.",[15,58,59,60,63,64,68],{},"Bize gereken üçüncüsüydü. Mimari olarak ",[24,61,62],{},"YOLOv8-seg","'i seçtik: hızlı, küçük veri setinde iyi başlıyor ve eğitimi tek komutla yapılıyor. Küçük (",[65,66,67],"code",{},"yolov8s-seg",") sürümle başladık; veri büyüdükçe orta boy modele geçmek mümkün.",[10,70,72],{"id":71},"veri-hangi-kareleri-seçtik","Veri: Hangi Kareleri Seçtik?",[15,74,75],{},"Modelin başarısı mimariden çok verideki çeşitliliğe bağlı. Uçuşlardan kare seçerken şu kurallara uyduk:",[36,77,78,84,90,96],{},[39,79,80,83],{},[24,81,82],{},"Çeşitlilik",": Sık ve seyrek dikilmiş bölgeler, bahçenin farklı köşeleri, gölgeli ve güneşli kareler.",[39,85,86,89],{},[24,87,88],{},"Ağaçsız kareler",": Boş tarla, çıplak toprak, yalnız çim. Modele \"bu yeşil ama ağaç değil\" demeyi öğretmek için şart. Bunlar olmadan model ilk çim kümesini ağaç sanıyor.",[39,91,92,95],{},[24,93,94],{},"Hastalıklı görünen ağaçlar",": Şu an yalnız ağaç buluyoruz ama ileride hastalık sınıflandırması için bu kareler en değerli veri olacak.",[39,97,98,101],{},[24,99,100],{},"Bulanık ve hareketli kareleri dışarıda bırakmak",".",[15,103,104,105,108],{},"Etiketleme renkli (",[65,106,107],{},"_D.JPG",") görüntü üzerinden yapıldı; aynı numaralı kırmızı, yeşil ve NIR bant dosyaları yanına alındı. İki sınıf var: ceviz ve badem.",[10,110,112],{"id":111},"büyük-ortofoto-küçük-model-girdisi","Büyük Ortofoto, Küçük Model Girdisi",[15,114,115],{},"Model 640×640 piksellik görüntü bekliyor; bir bahçe ortofotosu ise on binlerce piksel genişliğinde. Bu yüzden tahmin bir hattan geçiyor:",[117,118,119,126,133,140],"ol",{},[39,120,121,122,125],{},"Ortofoto, yaklaşık ",[24,123,124],{},"%25 örtüşen 640 piksellik karolarla"," taranıyor.",[39,127,128,129,132],{},"Örtüşen bölgelerde aynı ağaç iki kez bulunuyor; ",[24,130,131],{},"IoU tabanlı NMS"," ile tekrarlar eleniyor.",[39,134,135,136,139],{},"Karo kenarında ikiye kesilmiş taçlar var: bir karoda sol yarısı, ötekinde sağ yarısı. Bunlar ",[24,137,138],{},"dikiş birleştirme"," adımında tek bir taca bağlanıyor.",[39,141,142,143,146],{},"Son olarak gerçekten üst üste binen poligonlar için bir ",[24,144,145],{},"poligon örtüşme NMS'i"," daha çalışıyor.",[15,148,149],{},"Bu adımlar olmadan karo kenarındaki ağaçlar ya iki kez sayılıyor ya da yarım ölçülüyordu.",[10,151,153],{"id":152},"sonuçlar-nasıl-okunmalı","Sonuçlar Nasıl Okunmalı?",[15,155,156],{},"Eğitim sonunda modeli, eğitimde hiç kullanılmamış bir test seti üzerinde ölçüyoruz. Üç sayıya bakıyoruz:",[36,158,159,165,171],{},[39,160,161,164],{},[24,162,163],{},"Precision",": Model \"ağaç\" dediğinde ne sıklıkla haklı. Düşükse yanlış alarm çok.",[39,166,167,170],{},[24,168,169],{},"Recall",": Gerçek ağaçların ne kadarını buluyor. Düşükse ağaç kaçırıyor.",[39,172,173,176],{},[24,174,175],{},"mAP50",": İkisinin özeti; modelleri karşılaştırmak için en pratik tek sayı.",[15,178,179,180,183],{},"Doğrulama setinde taç maskesi için recall 0,75, mAP50 yaklaşık 0,61 civarında. Bu sayılar her pikselin doğru maskelenmesini ölçüyor ve karo birleştirme öncesi; sahada ağaç sayımı açısından tablo daha iyi. Ama dürüst olmak gerekirse, asıl darboğaz model değil veri: badem örnekleri cevize göre çok az olduğu için badem skorları düşük. Bu bir model hatası değil, ",[24,181,182],{},"veri dengesizliği",". Çözümü daha fazla badem karesi.",[15,185,186],{},"Eğitimde erken durdurma (early stopping) kullandık: 30 epoch boyunca doğrulama skoru iyileşmezse eğitim kendiliğinden duruyor. Son modelimiz 105. epoch'ta durdu, en iyi ağırlıklar 75. epoch'tan.",[10,188,190],{"id":189},"eski-gpu-ile-eğitim","Eski GPU ile Eğitim",[15,192,193,194,197,198,201],{},"Eğitim makinemizde bir GTX 1060 (Pascal nesli) var. Güncel PyTorch sürümleri bu GPU'yu resmi olarak desteklemiyor: ",[65,195,196],{},"torch.cuda.is_available()"," ",[65,199,200],{},"True"," dönüyor ama ilk gerçek işlemde hata veriyor. Bu yüzden eğitim için ayrı bir ortam kurduk (PyTorch 2.1.2 + CUDA 11.8). Bu ortamdaki Ultralytics sürümü YOLO11'i tanımıyor; o yüzden YOLOv8 tabanında kaldık.",[15,203,204,205,208],{},"Bunu yazmamızın nedeni şu: sahadaki pek çok tesiste son nesil GPU yok. Modelin \"çalışıyor\" demesi için yalnız ",[65,206,207],{},"is_available()"," değil, gerçek bir matris çarpımı deneyen bir kontrol yazdık. Müşteri donanımında da aynısını yapıyoruz.",[10,210,212],{"id":211},"sıradaki-adımlar","Sıradaki Adımlar",[36,214,215,218,221],{},[39,216,217],{},"Daha fazla badem ve sık dikim örneğiyle veri setini dengelemek",[39,219,220],{},"Hastalıklı ağaçları ayrı bir sınıf olarak etiketlemek",[39,222,223],{},"Daha büyük bir modelin hız\u002Fdoğruluk dengesini ölçmek",[10,225,227],{"id":226},"sonuç","Sonuç",[15,229,230,231,235],{},"İyi bir tespit modeli, iyi seçilmiş veri ile modelin çevresindeki mühendisliğin (karo, birleştirme, ölçüm) toplamı. Benzer bir görüntü işleme ihtiyacınız varsa ",[18,232,234],{"href":233},"\u002Fcozumlerimiz\u002Findustrial-ai","Industrial AI çözümümüz"," sayfasına bakabilirsiniz.",[237,238,240],"h3",{"id":239},"i̇lgili-yazılar","İlgili Yazılar",[36,242,243,248,254,260],{},[39,244,245],{},[18,246,247],{"href":20},"PlantFarm Scan: GETEK ile Drone Görüntüsünden Ağaç Bazlı Bitki Sağlığı Analizi",[39,249,250],{},[18,251,253],{"href":252},"\u002Fblog\u002Fmultispektral-drone-ile-ndvi-ndre-bitki-sagligi","Multispektral Drone ile Bitki Sağlığı: NDVI, NDRE ve Doğru Uçuş",[39,255,256],{},[18,257,259],{"href":258},"\u002Fsozluk\u002Finstance-segmentation","Sözlük: Instance Segmentation",[39,261,262],{},[18,263,265],{"href":264},"\u002Fsozluk\u002Fmodel-degerlendirme-metrikleri","Sözlük: Model Değerlendirme Metrikleri",{"title":267,"searchDepth":268,"depth":268,"links":269},"",2,[270,271,272,273,274,275,276,277],{"id":12,"depth":268,"text":13},{"id":30,"depth":268,"text":31},{"id":71,"depth":268,"text":72},{"id":111,"depth":268,"text":112},{"id":152,"depth":268,"text":153},{"id":189,"depth":268,"text":190},{"id":211,"depth":268,"text":212},{"id":226,"depth":268,"text":227,"children":278},[279],{"id":239,"depth":280,"text":240},3,"PlantFarm Scan için drone görüntülerinde ceviz ve badem ağaçlarını bulan modeli nasıl eğittik: veri seçimi, karo tabanlı tahmin, karo sınırındaki taçları birleştirme ve eski GPU ile eğitim.","md",{"date":284,"author":285,"readTime":286,"tags":287,"image":294,"translation":295},"2026-10-29","Amazeng Teknik Ekip",8,[288,289,290,291,292,293],"Industrial AI","Derin Öğrenme","YOLOv8","Instance Segmentation","Model Eğitimi","PlantFarm","\u002Fsolutions\u002Fai\u002Fplantfarm-tree-detection.webp","walnut-crown-detection-training-yolov8-seg",true,"\u002Fblog\u002Fceviz-agaci-tac-tespiti-yolov8-seg-model-egitimi",{"title":5,"description":281},"blog\u002Fceviz-agaci-tac-tespiti-yolov8-seg-model-egitimi","U85_C0U12c1oMHqt5fJWiKkjx8D0S1ZVxqC1ye1yWkw",1793268818720]