GÖREV KAYDI

GÖREV KAYDI

KAYIT AÇIK

ATILIM UAV · YER KONTROL İSTASYONU

GÖREV KAYDI / DETAY

Arşiv

CANLI · OKUMA MODU

Proje Günlüğü

Yakında Görüyor, Uzakta Kör: Bir Tespit Arızasının Kök Neden Analizi

Yakında Görüyor, Uzakta Kör: Bir Tespit Arızasının Kök Neden Analizi

İrtifaya karşı hedef piksel bütçesi: 640 px'e küçültme öncesi ve sonrası

FIG. 01

KAYIT KÜNYESİ

Kategori

Proje Günlüğü

TARİH

TÜM KAYITLAR

Güncelleme — sonra ne oldu. Bu kayıt, piksel bütçesini o gün ölçtüğümüz haliyle, tekli zoomda aktarıyor. Tespit artık 3× dijital zoomla uçuyor; bu da 50 m görev irtifasında GSD'yi 14.8 mm/px'e indiriyor. Görev irtifasında tespit ve uçtan uca otonom teslimat testleri de o günden bu yana sahada yapıldı. Güncel yapılandırma ve rakamlar için KA-FA1500 sayfasına bakabilirsiniz.

Eğitilmiş bir nesne tespit modelimiz vardı ve doğrulama metrikleri iyi görünüyordu. Sahada ise tuhaf davrandı:

  • Hedefe yakınken onu yüksek güvenle buluyordu

  • Mesafe biraz açıldığında hiçbir şey üretmiyordu

  • Arada hiçbir geçiş yoktu. "Şüpheli tespit" bile çıkmıyordu

Bu davranışın kendisi bir ipucu. Model kademeli olarak bozulmuyordu; belli bir eşiğin ötesinde tamamen susuyordu. Bu yazı, o sessizliğin nedenini nasıl bulduğumuzun hikâyesi.

İlk refleks: eşiği düşürmek (ve neden işe yaramadığı)

Herkesin ilk başvurduğu çözüm: güven eşiğini düşürmek. Model 0.4'te susuyorsa 0.15'e çekersiniz, belki zayıf tespitler yüzeye çıkar.

Denedik. Hiçbir şey değişmedi.

Geriye dönüp bakınca nedeni apaçıktı: eşik taraması, ağın hiç üretmediği bir tespiti geri getiremez. Eşik, var olan çıktıları filtreler. Model o rejimde hiç aday üretmiyorsa, filtreyi gevşetmek filtrelenecek bir şey bırakmaz.

Sık düşülen bir hata ayıklama tuzağı bu: semptomu ayarlamak, nedeni aramanın yerine geçiyor. Hiçbir şey ölçmeden düğmeleri çevirmek problemi çözüyormuş gibi hissettirir; ama çözmez.

Adım 1: fizik ne diyor?

Sorduğumuz ilk soru: hedef, kameranın gördüğü karede gerçekte kaç piksel kaplıyor?

Nadir bakan (dik aşağı) bir kamera için karenin yere düşen izi ve yer örnekleme mesafesi (GSD) şöyle çıkar:

W_ground = 2 · h · tan(HFOV / 2)

GSD = W_ground / N_pixels

Bizim kameramızda (SIYI A8 mini, 81° yatay görüş açısı, 1920 px genişlik):

İrtifa

GSD

1080p'de manken (1.7 m)

Model girdisine küçültüldükten sonra (640 px)

20 m

17.8 mm/px

~95 px

~32 px

46 m

40.9 mm/px

~42 px

~14 px

50 m, 3× zoom (uçuş yapılandırması)

14.8 mm/px

~115 px

~38 px

20 m ve 46 m satırları tekli (1×) zoom içindir; model sustuğunda uçtuğumuz yapılandırma buydu. Tespit artık 3× dijital zoomla uçuyor: 4K sensör okuması kırpılıyor, görüş açısı 31.8°'ye daralıyor ve etkin odak ~1124 px'ten 3372 px'e çıkıyor; son satır bu durum.

İlk kritik bulgu şu: model kareyi hiçbir zaman çekildiği haliyle görmüyor. Girdi boyutuna küçültülmüş bir sürümünü görüyor. 46 metrede, 1080p karede 42 piksel kaplayan bir manken ağa 14 piksel olarak ulaşıyor.

14 piksellik bir nesne, evrişimli bir ağın derin katmanlarında (stride-32 aşamasında) kabaca tek bir hücreye çöker. Bilgi, ağ karar vermeye başlamadan önce yok olmuştur. Bu, tekli zoomdaki piksel bütçesi: aracın bugün uçtuğu 3× zoomda aynı hedef ağa yaklaşık 38 piksel olarak ulaşıyor.



İrtifaya karşı hedefin piksel boyutu

Adım 2: veri ne diyor?

Fizik "imkânsız" değil, "zor" diyordu. Bu da ikinci soruyu getirdi: model o kadar küçük bir nesneyi görmeyi hiç öğrenmiş miydi?

Eğitim veri setindeki bütün etiket kutularının boyut dağılımını çıkardık. Sonuç çarpıcıydı:

  • Medyan kutu boyutu: ~200 piksel

  • En küçük %10'luk dilimdeki kutular bile ~99 piksel seviyesindeydi

Başka bir deyişle, veri seti operasyonel boyuta yakın tek bir örnek bile içermiyordu. Model 100-300 piksellik nesnelerle eğitilmişti; sahada ise ondan 14 piksellik bir nesneyi bulmasını bekliyorduk.

Bu, modelin "kötü" olduğu anlamına gelmiyor. Kendisine öğretilen işi tam olarak yapıyordu. Sadece öğretilen iş, sahadaki iş değildi.

Adım 3: eğitim ayarları ne diyor?

Son parça eğitim yapılandırmasından çıktı. Model checkpoint'ine kaydedilmiş parametrelere baktığımızda augmentation ayarlarının kapalı olduğunu gördük:

scale: 0        # no scale variation
fliplr: 0       # no horizontal flip
flipud: 0       # no vertical flip
degrees: 0      # no rotation
imgsz: 960
scale: 0        # no scale variation
fliplr: 0       # no horizontal flip
flipud: 0       # no vertical flip
degrees: 0      # no rotation
imgsz: 960

scale = 0 burada en kritik olanı. Bu parametre eğitim sırasında görüntüleri rastgele büyütüp küçültür; ağa "aynı nesne başka boyutlarda da görünebilir" demenin yolu budur. Kapalıyken ağ her nesneyi, veri setinde hangi boyutta bulunuyorsa yalnızca o boyutta öğrenir.

Teşhis: iki neden, tek semptom

Tablo yerine oturdu:

  1. Veride küçük ya da uzak örnek yok (medyan ~200 px)

  2. Ölçek çeşitliliği kapalı (scale=0)

İkisi birbirini besledi. Veride küçük nesne yoktu, augmentation da üretmiyordu. Sonuç: ağ "uzaktaki hedef" diye bir kavramı hiç oluşturamadı. Sahada gördüğümüz ikili davranışı (yakında kusursuz, uzakta sıfır) tam olarak bu açıklıyordu.

Dikkat çeken şu: doğrulama metrikleri bunun hiçbir ipucunu vermedi. Doğrulama seti aynı veriden geliyordu; yani model, tam da öğrendiği boyut aralığında sınava giriyordu. Metrik yalan söylemiyordu, sadece yanlış soruyu soruyordu.

Çözüm

Teşhis veriyi ve ölçeği işaret ettiği için mimariye dokunmadık. Aynı model ailesinde kalıp şunları değiştirdik:

  • Girdi çözünürlüğünü yükselttik (960 → 1280)

  • Augmentation'ı açtık: scale 0.5, fliplr/flipud 0.5, degrees 15, mosaic 1.0, mixup 0.1

  • Veri setini sıfırdan kurduk (ayrı yazı: "16.000 Görüntüyü Tek Veri Setinde Birleştirmek")

  • Doğrulama setini yalnızca gerçek havadan görüntülerden kurduk

scale ve mosaic burada asıl yükü çeken ikili: verinin sahip olmadığı küçük nesne popülasyonunu sentezliyorlar. Model artık aynı hedefi geniş bir boyut yelpazesinde görerek eğitiliyor.

Mimariyi bilerek sabit tuttuk. Veriyi ve mimariyi aynı anda değiştirseydik, iyileşmeyi hangisinin getirdiğini asla bilemezdik. Her seferinde tek bir değişkeni oynatmak, bir hata ayıklama sonucunu yorumlanabilir kılan şeydir.

Sonuçlar

Yeniden eğitilen model, tamamı gerçek havadan karelerden oluşan bir doğrulama setinde mAP50 0.950 değerine ulaştı. Daha da önemlisi, saha testinde iki hedefi de tespit etti ve otonom bir bırakma gerçekleştirebildik.

Çıkarımlar

1. Semptomu ayarlamadan önce nedeni ölçün. Bir eşiği düşürmek, kök nedeni avlamanın yerini tutmaz.

2. Fiziği yapın. "Hedef kaç piksel?" sorusu, saatlerce model denemekten daha hızlı yol gösterir. Kameranın görüş açısı, irtifa ve model girdi boyutu birlikte bir bütçe oluşturur.

3. Veri setinizin yalnızca boyutuna değil, dağılımına bakın. 16.000 görüntünüz olabilir ve yine de asıl ihtiyacınız olan durumdan tek bir örneğiniz bulunmayabilir.

4. Doğrulama setiniz uçacağınız ortamı temsil etmiyorsa metrikleriniz sizi yanıltır. Kolay metrik, iyi metrik değildir.

©2026 ATILIM UAV TEAM

©2026 ATILIM UAV TEAM