- Dataset: Plate Detection
- Dataset: Plaka Reading
- Yolov8 formatında indirdiğim verisetini Train (%70), Valid (%20), Test (%10) olarak ayrıştırdım.
- Ayrıştırdığım verileri yolo formatına uygun isimlere sahip olacak şekilde yeniden isimlendirdim (Eğitime hazır hale getirdim).
- Model: Yolov8n
- Sebep: Model optimizasyonu ve TensorRT dönüşümü için uygun.
- Model: Yolov8n
- Sebep: Hızlı ve hafif, gerçek zamanlı uygulamalar için uygun.
Başarım Metrikleri:
- Box(P): 0.998 (Precision, Doğruluk)
- R: 0.973 (Recall, Hatırlama)
- mAP50: 0.994 (Mean Average Precision at IoU 50%)
- mAP50-95: 0.888 (Mean Average Precision at IoU 50% to 95%)
Hız Metrikleri:
- Ön İşleme Süresi: 0.4 ms resim başına
- Çıkarım Süresi: 3.0 ms resim başına
- Kayıp Hesaplama Süresi: 0.0 ms resim başına
- Son İşleme Süresi: 4.3 ms resim başına
Performans Metrikleri:
- Box(P): 0.971 (Precision, Doğruluk)
- R: 0.975 (Recall, Hatırlama)
- mAP50: 0.98 (Mean Average Precision at IoU 50%)
- mAP50-95: 0.785 (Mean Average Precision at IoU 50% to 95%)
Hız Metrikleri:
- Ön İşleme Süresi: 1.4 ms resim başına
- Çıkarım Süresi: 13.0 ms resim başına
- Son İşleme Süresi: 4.5 ms resim başına
- Plaka tespiti ve okuma modeli -> Pruning İşlemi (Gereksiz bağlantıları kaldırma)
- Quantization İşlemi (Sayısal hassasiyeti düşürme, 8-bit yerine 32-bit kullanma)
- Modeli ONNX'e dönüştürme (modelleri birden fazla platformda ve araçta kullanabilmek için)
- ONNX modelini basitleştirme (daha hızlı ve daha az kaynak kullanımı için)
- Modeli TensorRT'ye dönüştürme (NVIDIA'nın derin öğrenme modellerini optimize eden kütüphanesi)
Bu adımlar fps değerini ve sistemin işlem hızını maksimum seviyeye taşımaktadır.
- Modelleri kullanabilmek için iskelet bir kod yazılması gerekmektedir.
- Modellerin hızını arttırdıktan sonra kullanılacak olan kamera sisteminde en hızlı çıktıyı alabilmek için programın yazıldığı dil çok önemlidir.
- Genelde Python bu konuda çok rahattır ama yüksek seviye bir dil olduğu için hem okuma hem de anlama açısından yavaştır.
- C++ kodu ile modelleri kullanacağımız programın iskeletini oluşturmak daha hızlı veriyi işleyebilmek için önemlidir.
- Kodu yazarken ve kameraya bağlamak için C++ kodu yazıldı.
- Tracking algoritmaları kullanarak her karede tekrar tespit yapmayı önlemek.
- ROI (Region of Interest) tekniklerini uygulamak (Belli Alanlara Daha Fazla İlgi Gösterilmesi).
- Algoritmalar tamamlandıktan sonra, kamera sistemlerine entegre hale getirmeye hazır bir program oluşturulması.