تجهيز مجموعة البيانات
- علّق البيانات باستخدام Roboflow أو LabelImg
- صدّر بصيغة YOLOv8
- التقسيم: 80/10/10 تدريب/تحقق/اختبار
التدريب
from ultralytics import YOLO
model = YOLO('yolov8n.pt') # nano for fast prototyping
results = model.train(
data='dataset.yaml',
epochs=100,
imgsz=640,
batch=16,
augment=True,
)
تصدير ONNX للإنتاج
model.export(format='onnx', dynamic=True, simplify=True)
نقطة نهاية FastAPI
@app.post('/detect')
async def detect(file: UploadFile):
img = Image.open(file.file)
results = model(img)
return {'detections': results[0].boxes.json()}