25 Mayıs 2026 · ~16 dk okuma · YOLOv8 / ONNX / C#

YOLOv8 → ONNX → C# Üretim Pipeline

Şablon eşleştirme sabit UI için mükemmeldir; değişken düzenlerde YOLOv8 küçük modeller (n/s) masaüstü otomasyonunda bbox üretir. Bu makale, eğitimden C# inference’a kadar uçtan uca süreci anlatır. Veri yalnızca yerel işlenmelidir; ekran görüntüleri buluta gönderilmemelidir.

1. Veri seti ve etiketleme

Kendi UI öğelerinizi (buton, ikon, durum göstergesi) en az 200–500 kare ile etiketleyin. COCO genel modelleri masaüstü UI’da tutarsızdır. Etiket formatı YOLO txt (sınıf, x_center, y_center, w, h normalize). Sınıf sayısını düşük tutun (5–15); bu inference hızını artırır.

2. Ultralytics ile eğitim

# pip install ultralytics
from ultralytics import YOLO
model = YOLO("yolov8n.pt")
model.train(data="ui_dataset.yaml", epochs=80, imgsz=640, batch=16)
metrics = model.val()

ui_dataset.yaml train/val yollarını ve names: sözlüğünü içerir. Erken durdurma (patience) aşırı öğrenmeyi azaltır.

3. ONNX export

model.export(format="onnx", opset=12, simplify=True, dynamic=False)

dynamic=False sabit giriş boyutu ile GPU kernel seçimini kolaylaştırır. Opset 12 geniş ONNX Runtime uyumluluğu sağlar. Export sonrası onnx.checker.check_model ile doğrulayın.

4. C# inference (ONNX Runtime)

NuGet: Microsoft.ML.OnnxRuntime (+ OnnxRuntime.Gpu isteğe bağlı). Giriş tensörü NCHW, normalize 0–1:

var opts = new SessionOptions();
opts.AppendExecutionProvider_CUDA(0); // yoksa CPU
using var session = new InferenceSession("ui_yolov8n.onnx", opts);
// Preprocess: ROI BGR → resize 640 → float tensor
// Postprocess: çıktıdan kutular → NMS → eşik 0.45

Non-Maximum Suppression (NMS) çakışan kutuları birleştirir. IoU eşiği 0.5 tipik değerdir.

5. OpenCV DNN alternatifi

OpenCvSharp4 CvDnn.ReadNetFromOnnx ile de çalıştırılabilir. CUDA backend kurulumu makineye bağlıdır. ONNX Runtime genelde daha öngörülebilir güncelleme döngüsü sunar.

6. Gecikme ve kare atlama

7. Gizlilik ve uyumluluk

Model eğitimi ve inference yerel diskte kalmalıdır. Kullanıcı profili açık onay ile loglanmalıdır. Üçüncü parti uygulama kurallarına uyum kullanıcı sorumluluğundadır; yazılım eğitim ve ergonomi amaçlı konumlandırılır.

İlgili: OpenCvSharp4 mimari · OpenCV vs YOLO karşılaştırma

← Tüm makaleler