Boğaziçi bölümüne dön

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.

04Drone / kuşYOLO26m · YOLO11m-cls
Projenin tanıtım kaydı (6 sn): sistemin işaretlediği drone yeşil, kuş mavi kutuda. Açık kaynaklı görüntü.

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.

01Örnek çıktıdrone · bird
Bulutlu bir gökyüzü ve tarla. Sol altta ufka yakın bir drone yeşil kutuyla, sağda ağaçların üstünde bir kuş mavi kutuyla işaretli.
İki aşamalı sistemin aynı karede işaretlediği drone (yeşil) ve kuş (mavi). Büyüteçler bu iki kutuyu yakınlaştırır. Açık kaynaklı görüntü.
Birleştirilmiş açık kaynak veri seti
BölümGörüntüKutu
Eğitim10.45015.517
Doğrulama2.7494.082
Test1.3562.013
Toplam14.55521.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ü.

02İki aşamalı hatYeniden çizildi

Bir kez: TensorRT FP16 motorları

  1. Video tespitibest_target_640.engine640 × 640 giriş
  2. Görüntü tespitibest_target_960.engine960 × 960 giriş
  3. Sınıflandırıcıbest_wbg_224.engine224 × 224 giriş

Her karede

  1. OkureadVideodan bir kare
  2. Tespitdet · YOLO26mTek sınıf: hedef. Önce hepsini yakala.
  3. KırpprepHer kutudan bir kırpım
  4. Sınıflandırcls · YOLO11m-clsDrone, kuş ya da arka plan
  5. ÇizrenderKutu ve sınıf etiketi
  6. GösterdisplayArayüzde canlı görüntü
  7. YazwriteÇıktının kaydı
Aşama adları, arayüzün her kare için ölçtüğü sürelerle aynı (read, det, prep, cls, render, display, write). Yeniden çizildi.Projenin özgün diyagramını açpipeline_overview.png · 1600 × 650

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.

03Karar tablosuAçıklayıcı
Kırpımda ne var?İki sınıfÜç sınıf
Dronedronedrone
Kuşkuşkuş
Gökyüzü, yaprak kenarı, gölge (yanlış tespit)drone ya da kuşarka plan → elenir
Açıklayıcı tablo: aynı üç kırpımın iki ve üç sınıflı sınıflandırıcıdan nasıl geçtiği.

04Arayüz

Model, bir uygulamanın içinde.

04Masaüstü arayüzPyTorch FP16
Video Test – 2-Step (GPU + Batch CLS) penceresi. Bina ve gökyüzü görüntüsünde alçakta bir drone yeşil kutuyla işaretli; üstte işlem hızı ve aşama süreleri yazıyor.
Arayüzün PyTorch modunda (GPU + Batch CLS) ekran görüntüsü, 178. kare. Açık kaynaklı test videosu.

İ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.

05Aşama sürelerims / kare

PyTorch FP1687,0 ms

TensorRT FP1644,8 ms

Aynı test videosu ve donanım: RTX 3060, CUDA 12.6 (rapor, Çizelge 4.5). “Diğer”, toplam gecikmenin raporda ayrı verilmeyen kısmı; toplamdan aşamalar çıkarılarak hesaplandı.
ÖlçümPyTorch FP16TensorRT FP16Değişim
Saniyede kare12,8 FPS26,0 FPS×2,03
Toplam gecikme87,0 ms44,8 ms−%48,5
Tespit25,2 ms18,9 ms−%25,0
Sınıflandırma15,4 ms2,6 ms−%83,1
Çizim6,4 ms4,4 ms−%31,3
Gösterim3,0 ms1,9 ms−%36,7
Yazma15,9 ms12,5 ms−%21,4
Aynı test videosu ve donanım: RTX 3060, CUDA 12.6 (rapor, Çizelge 4.5). “Diğer”, toplam gecikmenin raporda ayrı verilmeyen kısmı; toplamdan aşamalar çıkarılarak hesaplandı.Projenin özgün grafiğini açtensorrt_comparison.png · 1600 × 720

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.

  1. 01

    Veri

    Açık kaynak veri setlerini birleştirip denetledim ve tek bir YOLO yapısına getirdim.

  2. 02

    İki aşama

    Yüksek duyarlılıklı tespit, kırpım başına sınıflandırma.

  3. 03

    Arka plan sınıfı

    Tespitin yanlış pozitiflerinden öğrenen üçüncü sınıf.

  4. 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.

İletişim

Bir sonraki sistemibirlikte kuralım.

Yapay zekâ modellerini gerçek dünyada çalışan sistemlere dönüştürmeye odaklanan bir mühendis olarak yeni fırsatlara ve teknik iş birliklerine açığım. Bilgisayarlı görü, Edge AI veya uygulamalı makine öğrenmesi üzerine çalışıyorsanız tanışmak isterim.

Muhammed Ali Yıldırım

Applied AI / ML Engineering

Başa dön