YOLOv8-seg ile Araç Hasar Tespiti: Web + Masaüstü + Mobil Multimodal Sistem
Proje Fikri
Sigorta şirketleri ve otomotiv galerilerinin en büyük sorunlarından biri, araç hasarını hızlı ve güvenilir bir şekilde tespit etmektir. Manuel değerlendirmeler hem zaman alır hem de subjektiftir. Bu noktada bilgisayarla görme devreye giriyor.
Bu projede amacım, bir araç fotoğrafından hangi parçanın hasarlı olduğunu segmentasyon düzeyinde tespit eden ve bunu web, masaüstü ve mobil olmak üzere üç farklı istemcide çalıştıran bir sistem kurmaktı.
Neden Segmentasyon?
Klasik object detection (bounding box) yeterli değil. "Ön tampon hasarlı" demek için o bölgeyi piksel düzeyinde izole etmem gerekiyor. YOLOv8-seg tam burada devreye giriyor — hem hızlı hem de segmentasyon maskesi üretiyor.
Mimari
Kullanıcı (Web / Masaüstü / Mobil)
↓
FastAPI Backend
↓
YOLOv8-seg Model (Python)
↓
Hasar Bölgesi + Maliyet Tahmini
Backend (FastAPI)
FastAPI'yi seçmemin nedeni async desteği ve otomatik Swagger dokümantasyonu. Görüntü /predict endpoint'ine POST ile geliyor, model çalışıyor, sonuç JSON olarak dönüyor.
@app.post("/predict")
async def predict(file: UploadFile = File(...)):
img = await file.read()
results = model(img)
return {"segments": results.masks, "confidence": results.conf}
Web İstemci (Next.js 15)
React Server Components ile hızlı yükleme, TailwindCSS ile dark tema. Drag-and-drop fotoğraf yükleme, analiz sonuçlarını overlay olarak gösterme.
Masaüstü (Tauri 2)
Electron'dan çok daha hafif. Rust backend, WebView frontend. Aynı Next.js kodunu native bir uygulama olarak çalıştırıyor. Dosya sistemi erişimi için Tauri'nin native API'si kullanıldı.
Mobil (React Native)
Kamera entegrasyonu ile canlı fotoğraf çekme. Expo'nun expo-camera API'si ile direkt backend'e gönderme. Sonuçları mobil uyumlu arayüzde gösterme.
Karşılaştığım Zorluklar
1. Model boyutu: YOLOv8s segmentasyon modeli 22MB. Mobil cihazda çalıştırmak için sunucu taraflı inference tercih ettim.
2. CORS ve güvenlik: Üç farklı istemciden gelen istekler için FastAPI'de dikkatli CORS yapılandırması gerekti.
3. Tauri ile hot reload: Development modunda Tauri + Next.js birlikte çalıştırmak için özel script yazmak gerekti.
Sonuç
Proje şu anda Vercel'de canlı olarak çalışıyor. YOLOv8-seg modeli, test setinde mAP50: 0.89 değerine ulaştı. Gelecekte hasar bölgesinden otomatik maliyet tahmini yapan bir modül eklenecek.
Projeyi görmek için: GitHub