Çalışmalara dön

03Bağımsız yazılım · Masaüstü · Açık kaynak

LabelMate

YOLO etiketlemede yerel bir yapay zekâ yardımcısı: model kutuları önerir, karar insanda kalır.

Çıkarım
Yerel · Ultralytics YOLO
Arayüz
Python · PySide6
Çıktı
YOLO formatında etiketler
Lisans
MIT · açık kaynak

Katkım

Tek başıma tasarlayıp geliştirdim. Araç, Boğaziçi Savunma’daki iş yeri eğitimim kapsamında gerçek bir etiketleme ihtiyacından doğdu; LabelMate onun genelleştirilmiş, herkese açık hâli. Etiketlemeyi yerelde ve çevrimdışı yürüterek veri güvenliğini korumak ve süreci hızlandırmak için geliştirdim.

03Kayıtlı gösterim · gerçek uygulamaYOLOv8n · COCO
Uygulamanın gerçek ekran kaydı: öneriler gelir, model bir çekmeceli dolabı “fırın” sanır, kullanıcı öneriyi silip sonraki görsele geçer. Görseller COCO veri setinden, model önceden eğitilmiş YOLOv8n.

01Sorun

Her kutuyu elle çizmek.

Bir nesne tespit modeli, etiketlendiği veri kadar iyi öğrenir. Her görselde her nesneyi elle kutulamak yavaş ve tekrarlı bir iş; veri büyüdükçe asıl yük etiketlemeye biner.

LabelMate sırayı tersine çevirir: önce model önerir, insan gözden geçirir ve düzeltir. Görseller bilgisayardan çıkmaz; çıkarım, kullanıcının seçtiği YOLO modeliyle yerelde yapılır.

01Aynı görsel · önce ve sonra24 / 128
Aynı görsel; pasta, fincan ve masa çevresinde beş renkli öneri kutusu ve güven skorları.
Ahşap masada pasta ve kahve fincanı; görüntü karartılmış, ortada “Running YOLO Assist…” yazısı.
Gerçek kayıttan iki kare: model arka planda çalışırken ve beş öneri geldiğinde. Görsel COCO veri setinden.

02İnsan ve model

Model önerir, karar insanda.

Her öneri bir başlangıç noktası: kabul edilir, düzeltilir ya da silinir.

02İş akışı01 / 04
LabelMate penceresi: bir pasta fotoğrafında üç öneri kutusu; solda görsel listesi, sağda açıklama paneli.

Görsel açılınca model arka planda çalışır; öneriler sınıf ve güven skoruyla gelir (cake 0.48, dining table 0.25, fork 0.37).

Pasta kutusu seçili, köşe ve kenarlarında tutamaçlar; sağ panelde sınıf cake, güven 0.482 ve normalize merkez ile boyut değerleri.

Seçilen kutu sekiz tutamaçla taşınır ve boyutlanır; sağ panel sınıfı, güveni ve normalize konumu gösterir.

Çekmeceli dolabın çevresinde seçili “oven 0.37” kutusu; sağ panelde sınıf oven ve güven 0.373.

Model bir çekmeceli dolabı “fırın” sanıyor (oven 0.37). Öneri, kaydedilmeden önce insanın önüne gelir.

Aynı görsel, kutu silinmiş; sağ panelde kutu sayısı 0.

Kullanıcı öneriyi siler. “Empty Label” açık olduğundan, sonraki görsele geçerken bu görsel “burada nesne yok” diyen boş bir etiket dosyasıyla kaydedilir.

Görsel açılınca model arka planda çalışır; öneriler sınıf ve güven skoruyla gelir (cake 0.48, dining table 0.25, fork 0.37).

Görseller arasında klavyeyle gezilir; kayıtlı etiketi olan görsel listede yeşile döner. Model yanılabilir; bu yüzden her öneri, kaydedilmeden önce insanın önüne gelir.

Klavyeyle

Space
kaydet, sonraki
A / D
önceki / sonraki
Del
kutuyu sil
Ctrl+Z
geri al
Ctrl+R
öneriyi yenile

Kayıtta model önceden eğitilmiş YOLOv8n, görseller COCO veri setinden. Kullanım, zaman kazancı veya doğruluk ölçümü raporlanmadı.

03Arka plan

Arayüz akıcı kalır, model arka planda çalışır.

Her görsel aynı yolu izler.

03Bir görselin yoluPySide6 · QThread

Model seçildiğinde · bir kez

  1. Model seçimiModelDialog.pt / .onnx ya da hazır YOLO11 / YOLOv8 indirme
  2. YüklemeYOLOModel.loadUltralytics YOLO
  3. IsınmaWarmupWorkerboş bir 640×640 görselle ilk çıkarım

Her görsel için

  1. Görsel açılır_open_imageliste ve tuval güncellenir
  2. Kayıtlı etiket?read_labelvarsa yüklenir; model yeniden çalışmaz
  3. ÇıkarımInferenceWorkerayrı iş parçacığı (QThread)
  4. Önerilerresults_readyQt sinyali; başka görsele geçildiyse sonuç atılır
  5. İnsan düzenlerCanvasseç · taşı · boyutla · sil · çiz
  6. Kaydetwrite_labelSpace ile ya da görsel değişirken
  7. labels/<ad>.txtnormalize YOLO satırları
Adlar depodaki koddan: app/main_window.py, app/workers.py, app/yolo_inference.py, app/label_io.py. Akış açıklayıcıdır; süre ölçümü içermez.

04Tuval

Ekrandaki hareket, verideki değişiklik.

Tuval üç koordinat düzlemiyle çalışır: ekran, görüntü pikseli ve dosyadaki normalize değerler. Fare hareketi önce görüntü pikseline çevrilir, işlem orada yapılır, sonuç 0–1 aralığına normalize edilir.

Kutular görüntü sınırlarına kırpılır ve köşeleri sıralanır; ters yönde çizilen bir kutu da geçerli kalır. Yakınlaştırma, imlecin altındaki noktayı yerinde tutar.

Her düzenlemeden önce kutuların tam bir kopyası geri alma yığınına alınır: 50 adıma kadar geri ve ileri.

04Üç koordinat düzlemiAçıklayıcı
Açıklayıcı çizim; dönüşümler app/canvas.py ve app/bbox.py’den. Örnek değerler kayıttaki seçili pasta kutusunun sağ panelde görünen değerleri.

05Çıktı

Düzenlemeden eğitim verisine.

Her görsel için bir metin dosyası, her satırda bir kutu. Sınıf numarası, merkez ve boyut görüntüye göre normalize edilir; güven skoru dosyaya yazılmaz.

Sınıf adları çıktı klasöründeki classes.txt dosyasından ya da modelden gelir. İstenirse görseller de çıktı klasörüne kopyalanır.

05YOLO etiket dosyasıYOLO · TXT

Çıktı klasörü

  • çıktı_klasörü/
  • labels/
  • image001.txt
  • image002.txt
  • images/isteğe bağlı
  • classes.txt

Bir satır, bir kutu

00.5123000.4382000.0341000.028900

sınıf: 0 · merkez x: 0.512300 · merkez y: 0.438200 · genişlik: 0.034100 · yükseklik: 0.028900

Klasör yapısı ve örnek satır deponun belgelerinden; değerler 0–1 aralığında, altı basamakla yazılır.

06Sonuç

İç ihtiyaçtan açık araca.

  1. 01

    Yerel

    Görseller bilgisayardan çıkmaz; çıkarım, seçilen YOLO modeliyle kullanıcının makinesinde yapılır.

  2. 02

    İnsan kontrolde

    Model yalnızca önerir; kaydetmek, düzeltmek ya da silmek insanın kararı.

  3. 03

    Akıcı

    Isınma, çıkarım ve model indirme arka plan iş parçacıklarında çalışır.

  4. 04

    Açık

    MIT lisansı; Windows için sanal ortamı kurup masaüstü kısayolu oluşturan kurulum betiği.

Kapsam: tek sınıflı iş akışları için optimize; çok sınıf classes.txt ile. Yalnızca görsel klasörleri, video desteklenmiyor. GPU kullanımı Ultralytics’e bırakılır. Kullanım, zaman kazancı veya platform testi hakkında bir ölçüm raporlanmadı.

Bağımsız proje · 2026 · MIT lisansı

İ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