YOLO11s — Forklift ve İnsan Tespiti (Araç Doluluk Kontrolü)
Görev: Endüstriyel ortamlarda forklift ve insan tespiti yapmak, ardından
tespitlerin üzerine kurulan mekânsal içerme (containment) kuralıyla her aracın
dolu (içinde/üzerinde operatör var) olup olmadığına karar vermek.
Tek cümlelik özet: Güvenlik odaklı, iki aşamalı bir sistem —
YOLO11s tespiti (forklift, person) + kutu-içerme son işlemesi.
1. Kullanım Amacı
- Endüstriyel alanların (depo, tesis, saha) araç doluluğu açısından izlenmesi.
- Güvenlik sistemleri için yapı taşı; örn. "başıboş çalışan araç" uyarıları.
- Sertifikalı bir güvenlik cihazı değildir. Hayati kararların tek dayanağı
olarak kullanılmamalı, yardımcı bir sinyal olarak değerlendirilmelidir.
2. Nasıl Çalışır?
- YOLO11s iki sınıf tespit eder:
forklift (id 0) ve person (id 1).
- Tespit edilen her forklift için, her insanla içerme oranı hesaplanır:
kesişim_alanı / insan_kutusu_alanı.
- Herhangi bir insanın içerme oranı ≥ 0.5 ise forklift DOLU,
aksi halde BOŞ olarak işaretlenir.
Neden IoU değil de içerme? Operatörün kutusu araç kutusuna göre küçüktür;
insan tamamen aracın içinde olsa bile IoU düşük kalır. İçerme oranı ise
"insanın ne kadarı aracın içinde?" sorusunu doğrudan cevaplar — oturan
operatörde ~1.0, yoldan geçen yayada ~0.0 çıkar.
Güven eşikleri bilinçli olarak asimetriktir (güvenlik bağlamı):
person: 0.15 (düşük; insan kaçırmayı en aza indirmek için —
bu senaryoda en tehlikeli hata yanlış negatiftir)
forklift: 0.40 (daha yüksek; hayalet araç tespitini önlemek için)
3. Hızlı Başlangıç
1from huggingface_hub import hf_hub_download
2from ultralytics import YOLO
3
4model = YOLO(hf_hub_download(
5 "mustafahacioglu/yolo11s-forklift-person-detection", "best.pt"))
6results = model.predict("image.jpg", conf=0.15)
4. Eğitim Verisi
Roboflow Universe'ten iki açık veri seti, sınıf kimlikleri hizalanarak birleştirildi:
| Kaynak | Görüntü | Sınıflar | Lisans |
|---|
| mohamed-traore-2ekkp/forklift-dsitv (v1) | 421 | forklift, person | CC BY 4.0 |
| etri/map_up (v4) | ~4.100 | forklift, person | kaynağa bakınız |
Birleşik bölümler: 3.928 train / 433 val / 221 test görüntüsü
(train'de 7.464 kutu; sınıflar dengeli: 3.646 forklift, 3.818 person;
1.610 train görüntüsünde iki sınıf birlikte bulunuyor).
5. Eğitim Ayarları
| Ayar | Değer |
|---|
| Taban model | yolo11s.pt (COCO pretrained, transfer learning) |
| Epoch | 150 (tamamlandı, erken durma tetiklenmedi) |
| Görüntü boyutu | 640 |
| Batch | 16 |
| Optimizer | AdamW (auto), lr0=0.001667 |
| Seed | 42 |
| Augmentation | Ultralytics varsayılanları (mozaik, flip, HSV, ölçek) |
| Donanım | NVIDIA A100 (Google Colab), ~1,15 saat |
6. Sonuçlar (test seti, 221 görülmemiş görüntü)
| Sınıf | Precision | Recall | mAP50 | mAP50-95 |
|---|
| tümü | 0.880 | 0.804 | 0.841 | 0.598 |
| forklift | 0.903 | 0.892 | 0.920 | 0.684 |
| person | 0.857 | 0.716 | 0.762 | 0.512 |
Validation (433 görüntü) sonuçları tutarlıdır (genel mAP50 = 0.856);
bu da anlamlı bir overfitting olmadığını gösterir.
7. Bilinen Sınırlar
- Oturan / büyük ölçüde gizlenmiş (occluded) operatörler, çok düşük güven
eşiklerinde bile tamamen kaçırılabilir. Kök neden: eğitim verisinde
oturan-operatör örneklerinin azlığı. Baskın hata türü budur.
- Yakın çekimler: araca bitişik duran bir kişi, kutu örtüşmesi nedeniyle
"araçta" sayılabilir (içerme kuralının yanlış pozitifi).
- Model ağırlıklı olarak forklift ile eğitildi; diğer endüstriyel araçlar
(ekskavatör, vinç vb.) dağılım dışıdır.
- Varsayılan eşiklerde person recall 0.716'dır —
conf değeri kullanım
senaryosuna göre ayarlanmalıdır.
8. Gelecek Çalışmalar
- Oturan-operatör ağırlıklı ek veriyle yeniden eğitim.
- Daha fazla araç türüne genişletme.
- Kutu içermesi yerine daha zengin mekânsal akıl yürütme (örn. keypoint).
- Edge dağıtımı: gerçek zamanlı kullanım için ONNX / TensorRT export.
9. Lisanslar ve Atıflar
- Ultralytics YOLO11: AGPL-3.0 (bu model de aynı lisansı devralır).
- forklift-dsitv veri seti: CC BY 4.0, mohamed-traore-2ekkp (Roboflow Universe).
- map_up veri seti: etri (Roboflow Universe).