04Boğaziçi Savunma Teknolojileri · Uzun dönem staj
Drone mu,kuş mu?
Gökyüzünde birkaç piksellik bir hedef. Önce yakalamak, sonra ne olduğuna karar vermek gerekiyor.
- Mimari
- Tespit + sınıflandırma
- Modeller
- YOLO26m · YOLO11m-cls
- Sınıflar
- Drone · kuş · arka plan
- Hız (RTX 3060)
- 12,8 → 26,0 FPS
Katkım
Açık kaynak veri setlerini birleştirip denetledim; tespit ve sınıflandırma modellerini eğittim, iki aşamalı çıkarım hattını ve masaüstü arayüzünü geliştirdim, hattı TensorRT FP16 ile hızlandırdım.
01Veri
Uzak, küçük, birbirine benzer.
Uzaktan bakınca drone da kuş da gökyüzünde birkaç piksellik bir leke. Açık kaynak veri setlerini etiket bütünlüğü, boş ve hatalı etiketler, senaryo uyumu ve sınıf dengesi açısından inceleyip tek bir sette birleştirdim.
Bu veriyle eğitilen ilk model küçük hedeflerde ve karmaşık arka planlarda yanlış alarm üretti. Bunun üzerine WOSDETC / Drone-vs-Bird Challenge veri seti, veri kullanım sözleşmesiyle projeye eklendi. Sözleşme gereği paylaşılamadığı için bu sayfada yer almıyor.
Etiketlemede CVAT ve Roboflow’u kullandım. Bütün veri eğitimden önce aynı denetimden geçti: görüntü–etiket eşleşmesi, kutuların görüntü üzerinde gözle kontrolü, bozuk dosyaların ayıklanması ve YOLO biçimine dönüştürme. Hatalı etiket sayısı sıfıra indi.

| Bölüm | Görüntü | Kutu |
|---|---|---|
| Eğitim | 10.450 | 15.517 |
| Doğrulama | 2.749 | 4.082 |
| Test | 1.356 | 2.013 |
| Toplam | 14.555 | 21.612 |
Kutuların 10.159’u drone, 11.453’ü kuş.
02Mimari
Önce yakala, sonra karar ver.
Hem bulmak hem ayırt etmek tek bir modele kaldığında küçük hedefler kaçıyor ya da yanlış sınıfa giriyor. İş ikiye bölündü.
Bir kez: TensorRT FP16 motorları
- Video tespiti
best_target_640.engine640 × 640 giriş - Görüntü tespiti
best_target_960.engine960 × 960 giriş - Sınıflandırıcı
best_wbg_224.engine224 × 224 giriş
Her karede
- Oku
readVideodan bir kare - Tespit
det · YOLO26mTek sınıf: hedef. Önce hepsini yakala. - Kırp
prepHer kutudan bir kırpım - Sınıflandır
cls · YOLO11m-clsDrone, kuş ya da arka plan - Çiz
renderKutu ve sınıf etiketi - Göster
displayArayüzde canlı görüntü - Yaz
writeÇıktının kaydı
Tespit modeli drone ile kuşu tek bir “hedef” sınıfında topluyor ve uçan her şeyi yakalamaya odaklanıyor. Kesin karar ikinci aşamada, yalnızca o kutunun kırpımına bakan sınıflandırıcıda veriliyor: tespitin yüksek duyarlılığı ile sınıflandırmanın kesinliği aynı hatta birleşiyor.
03Hata analizi
Üçüncü bir cevap: hiçbiri.
İlk sınıflandırıcı yalnızca drone ve kuşu tanıyordu. Tespit modeli gökyüzünün bir parçasını, bir yaprak kenarını ya da bir gölgeyi hedef sandığında, o kırpım ister istemez bu iki sınıftan birine giriyordu.
Tespit modelinin yanlış pozitiflerini inceleyip “arka plan” sınıfı olarak sınıflandırma verisine ekledim. Üç sınıflı model bu kırpımları eleyebiliyor; arayüze yalnızca drone ve kuş ulaşıyor.
Rapor, iki aşamalı yapının özellikle kuşların drone sanıldığı yanlış alarmları belirgin biçimde azalttığını testlerdeki gözleme dayanarak belirtir. Bu azalma için ayrı bir sayı ölçülmedi.
| Kırpımda ne var? | İki sınıf | Üç sınıf |
|---|---|---|
| Drone | drone | drone |
| Kuş | kuş | kuş |
| Gökyüzü, yaprak kenarı, gölge (yanlış tespit) | drone ya da kuş | arka plan → elenir |
04Arayüz
Model, bir uygulamanın içinde.

İki modeli tek bir akışta birleştiren bir masaüstü arayüzü geliştirdim. Görüntü ya da video yükleniyor; her karede önce tespit, sonra sınıflandırma çalışıyor ve sonuç kutu ve sınıfla birlikte ekrana geliyor. Arayüz anlık işleme hızını ve her aşamanın süresini de gösteriyor.
Pencerenin üst satırları
İşlem12.4 fpsHedef25.0 fpsDrone1Bird0crops1frame178
read3.8det27.3prep0.1cls6.1render5.3display2.5write10.1total58.2
Tek bir kareye ait anlık değerler. det ve cls iki modelin, total karenin toplam süresi (ms).
- İşlem
- Saniyede işlenen kare
- Hedef
- Gerçek zaman hedefi: 25 FPS
- crops
- Sınıflandırıcıya giden kırpım sayısı
05Optimizasyon
Hedef 25 FPS idi.
PyTorch FP16 ile hat saniyede 12,8 kare işliyordu: gerçek zamanlı hedefin yaklaşık yarısı.
- PyTorch FP16
- 12,8FPS
- TensorRT FP16
- 26,0FPS
İki modeli TensorRT FP16 motorlarına dönüştürdüm; motor bir kez derleniyor, sonra doğrudan GPU’da çalışıyor. Hat 26,0 FPS’e çıktı. En büyük kazanç sınıflandırmada: 224 × 224 kırpımlar toplu işlenirken süre 15,4 ms’den 2,6 ms’ye indi.
PyTorch FP1687,0 ms
TensorRT FP1644,8 ms
| Ölçüm | PyTorch FP16 | TensorRT FP16 | Değişim |
|---|---|---|---|
| Saniyede kare | 12,8 FPS | 26,0 FPS | ×2,03 |
| Toplam gecikme | 87,0 ms | 44,8 ms | −%48,5 |
| Tespit | 25,2 ms | 18,9 ms | −%25,0 |
| Sınıflandırma | 15,4 ms | 2,6 ms | −%83,1 |
| Çizim | 6,4 ms | 4,4 ms | −%31,3 |
| Gösterim | 3,0 ms | 1,9 ms | −%36,7 |
| Yazma | 15,9 ms | 12,5 ms | −%21,4 |
Masaüstü ölçümü. İki mod arasında doğruluk ayrıca karşılaştırılmadı. Hedef platform olarak Jetson Orin NX araştırıldı; gömülü kurulum ve INT8 gelecek çalışma.
06Ortaya çıkan
Bir modelden çalışan bir hatta.
- 01
Veri
Açık kaynak veri setlerini birleştirip denetledim ve tek bir YOLO yapısına getirdim.
- 02
İki aşama
Yüksek duyarlılıklı tespit, kırpım başına sınıflandırma.
- 03
Arka plan sınıfı
Tespitin yanlış pozitiflerinden öğrenen üçüncü sınıf.
- 04
TensorRT FP16
12,8’den 26,0 FPS’e; süreler arayüzde canlı ölçülüyor.
Masaüstü prototip (RTX 3060). Kamusal depo, paylaşılabilir iki aşamalı alt sistemi içerir; WOSDETC verisi ve kurum verisi paylaşılmaz.
