זיהוי אובייקטים מותאם אישית: אימון מודלים של YOLOv8, YOLO11, RT-DETR

אימון גלאי אובייקטים נתקל לא פעם ברמת דיוק נמוכה על נתונים אמיתיים, במיוחד עם פגמים קטנים. אנחנו מאמנים מודלים של YOLOv8, YOLO11 ו-RT-DETR עבור המשימה שלך, מכוונים היפרפרמטרים ומבצעים אופטימיזציה ל-TensorRT. הצוות שלנו מספק פתרון מלא—מסימון מערך נתונים ועד פריסה—עם תמיכה מתמשכת.

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

אספתם מערך נתונים של ליקויי ייצור, הרצתם את yolo train, ו[email protected] נשאר תקוע על 0.6. נשמע מוכר? אנחנו רואים את זה כמעט בכל פרויקט שני. הצוות שלנו עוזר לחברות לאמן גלאי אובייקטים למשימות הספציפיות שלהן: מאיסוף מערך נתונים מותאם אישית וסימון תמונות ועד אופטימיזציה של TensorRT. אנחנו מבטיחים mAP50 > 90% על קבוצת בדיקה נפרדת. השירותים שלנו עולים בדרך כלל $2,500–$4,000, וחוסכים לכם עד 50% בהשוואה לפיתוח פנימי. נבחן את הפרויקט שלכם — צרו קשר.

כיצד לכוונן היפרפרמטרים עבור אובייקטים קטנים

YOLOv8 הוא התקן דה-פקטו לרוב משימות הזיהוי בייצור. אבל הפער בין הגעה ל-yolo train לבין השגת [email protected] > 0.85 על נתונים מהעולם האמיתי משתרע על פני מספר איטרציות, כל אחת עם החלטות ספציפיות. עבור אובייקטים קטנים (פחות מ-5% משטח התמונה), בחירה קפדנית של היפרפרמטרים היא קריטית. הנה תצורה אופיינית למודלים בגודל בינוני:

תצורה לדוגמה וקוד אימון
---
model: yolov8m.pt
data: dataset.yaml
imgsz: 640
batch: 16
epochs: 200
optimizer: AdamW
lr0: 0.001
lrf: 0.01
momentum: 0.937
weight_decay: 0.0005
warmup_epochs: 3.0
mosaic: 1.0
mixup: 0.15
copy_paste: 0.1
degrees: 10.0
translate: 0.1
scale: 0.5
flipud: 0.0
fliplr: 0.5
hsv_h: 0.015
hsv_s: 0.7
hsv_v: 0.4
---
from ultralytics import YOLO
model = YOLO('yolov8m.pt')
results = model.train(
    data='dataset/data.yaml',
    imgsz=640,
    batch=16,
    epochs=200,
    device='0',
    project='runs/detect',
    name='defect_v1',
    save_period=10,
    val=True,
    plots=True,
    patience=50
)

הגדלת imgsz ל-1280 משפרת את [email protected] עבור אובייקטים קטנים (15–40 פיקסלים) ב-5–8%, אבל זמן האימון מוכפל ושימוש ב-VRAM קופץ ל-24 GB. עבור סצנות עם אובייקטים קטנים, אנחנו גם משביתים mosaic ב-10 האפוקות האחרונות ומפחיתים את המשקל שלו ל-0.5.

בעיות אימון אופייניות: שלוש סיבות שורש

התרחיש הנפוץ ביותר: ה-loss יורד, val mAP עולה לכ-0.6, ואז נתקע. ניתוח מטריצת הבלבול מראה false positives שיטתיים עבור מחלקה אחת. שלוש סיבות עיקריות:

  1. שגיאות סימון. אפילו 5% של bboxes שגויים הורסים את האימון עבור מחלקות קטנות. כלי האבחון שלנו הוא סקריפט ביקורת שבודק חריגות מגבולות, micro-bboxes וכפילויות.
import numpy as np
from pathlib import Path

def audit_annotation_quality(labels_dir: str) -> dict:
    issues = {'out_of_bounds': [], 'tiny_boxes': [], 'duplicates': []}
    for label_path in Path(labels_dir).glob('*.txt'):
        boxes = np.loadtxt(label_path, ndmin=2)
        if boxes.shape[0] == 0:
            continue
        cls_ids, cx, cy, bw, bh = (boxes[:, i] for i in range(5))
        oob = (cx - bw/2 < 0) | (cx + bw/2 > 1) | \
              (cy - bh/2 < 0) | (cy + bh/2 > 1)
        if oob.any():
            issues['out_of_bounds'].append(str(label_path))
        tiny = (bw * bh) < 0.0004
        if tiny.any():
            issues['tiny_boxes'].append(str(label_path))
    return issues
  1. מערך נתונים לא מאוזן. למרות ש-YOLOv8 הוא anchor-free, הטיה מרחבית—אובייקטים של מחלקה אחת תופסים את אותו אזור בתמונה—גורמת למודל ללמוד מתאמים עם הרקע. פתרון: חלוקה סטרטיפיקדית ו-augmentations: RandomPerspective, Copy-Paste.

  2. mosaic אגרסיבי מדי. עבור אובייקטים קטנים, mosaic מקטין אותם פי 2–4, מה שהופך אותם לבלתי ניתנים לזיהוי. אנחנו מפעילים mosaic רק ב-90% הראשונים של האפוקות; עבור מערכי נתונים עם אובייקטים <20 פיקסלים, אנחנו מפחיתים את המשקל שלו ל-0.5 ומשלבים עם MixUp.

איך עובד האימון: תוכנית שלב-אחר-שלב

  1. ניתוח נתונים. בדיקת אובייקטים לפי מחלקה, גדלי bbox, פיזור על פני תמונות. אם יש פחות מ-500 אובייקטים למחלקה, השתמשו במשקלים מאומנים מראש של YOLOv8m והקפיאו את ה-backbone.
  2. תצורה. בחירת imgsz, גודל batch, אופטימייזר, לוח זמנים של LR. עבור אובייקטים קטנים: imgsz=960 או 1280, הפחתת mosaic.
  3. הפעלת אימון. השתמשו ב-Ultralytics HUB או בסקריפט מקומי עם ניטור דרך TensorBoard/WandB. עצרו ב-patience=50.
  4. ולידציה. בדיקת מטריצת בלבול, עקומות Precision-Recall, [email protected]:0.95. אם [email protected] < 0.8, חזרו לשלב 1.
  5. ייצוא. המרה ל-TensorRT (FP16) או ONNX. בדיקת זמן אחזור על GPU יעד.

כש-YOLO לא מספיק: היתרונות של RT-DETR

RT-DETR (Real-Time DEtection TRansformer) הוא גלאי מבוסס טרנספורמר ללא NMS. הוא עולה על YOLOv8 בסצנות עם חסימות כבדות ויחסי גובה-רוחב לא סטנדרטיים. במשימת זיהוי ליקויים קטנים (אובייקטים 15–40 פיקסלים), RT-DETR-L משיג [email protected] גבוה ב-7% מ-YOLOv8m עם תוספת של 4ms בלבד בזמן אחזור. כפי שצוין בתיעוד של Ultralytics, RT-DETR מספק איזון מדויק-מהירות מהשורה הראשונה. השוואה:

מודל [email protected] [email protected]:0.95 זמן אחזור (RTX3080) VRAM
YOLOv8n 0.724 0.421 2.3ms 2.1GB
YOLOv8m 0.811 0.513 5.1ms 5.8GB
YOLOv8l 0.837 0.541 8.2ms 8.1GB
RT-DETR-L 0.869 0.574 9.8ms 9.4GB
YOLO11l 0.845 0.553 7.9ms 7.8GB

דוגמה לאימון RT-DETR:

from ultralytics import RTDETR
model = RTDETR('rtdetr-l.pt')
model.train(
    data='dataset/data.yaml',
    imgsz=640,
    batch=8,
    epochs=100,
    device='0',
    optimizer='AdamW',
    lr0=0.0001,
    warmup_epochs=2
)

TensorRT לייצור

לייצור, אנחנו מייצאים את המודל המאומן ל-TensorRT עם FP16—משיגים האצת inference של פי ~2 לעומת PyTorch עם ירידה של לכל היותר 0.5% ב-mAP. אנחנו גם שוקלים קוונטיזציה של INT8 אם ירידה של עד 1% בדיוק מקובלת (חיסכון בזיכרון של עד 50%). דוגמת ייצוא:

from ultralytics import YOLO
trained_model = YOLO('runs/detect/defect_v1/weights/best.pt')
trained_model.export(
    format='engine',
    device=0,
    half=True,
    dynamic=False,
    imgsz=640,
    batch=1,
    workspace=4
)

מה כלול בעבודה שלנו

  • ניתוח בעיות ובחירת ארכיטקטורה (YOLO / RT-DETR / Detectron2 / טרנספורמרים מותאמים אישית)
  • איסוף מערך נתונים מותאם אישית וסימון תמונות (המרה מ-COCO, Pascal VOC, Supervisely, CVAT)
  • כוונון עדין של הגלאי עם אופטימיזציה של היפרפרמטרים ו-augmentations (Grid Search, Bayesian Optimization)
  • ולידציה על קבוצת בדיקה נפרדת: mAP, מטריצת בלבול, עקומת PR, FPS
  • אופטימיזציה של המודל ל-inference: ייצוא ל-TensorRT / ONNX עם קוונטיזציה FP16/INT8
  • תיעוד כרטיס מודל וסקריפט inference
  • תמיכה לאחר פריסה (שבועיים)

לוחות זמנים ותמחור

משימה לוח זמנים
כוונון עדין של YOLOv8 (מערך נתונים מוכן) 1–2 שבועות
מחזור מלא: נתונים → אימון → אופטימיזציה 4–7 שבועות
גלאי מותאם אישית (ארכיטקטורת ראש חדשה) 8–14 שבועות

התמחור מוערך בנפרד לכל פרויקט. העלות האופיינית לכוונון עדין של YOLOv8 על מערך נתונים מוכן נעה בין $1,000 ל-$5,000, תלוי בגודל הנתונים ובמורכבות. זה כולל SLA קבוע—אנחנו מבטיחים השגת המדד היעד ([email protected] > 90%) או שנשפר את המודל ללא עלות נוספת. קבלו ייעוץ על הפרויקט שלכם—נסביר איזו גישה תספק דיוק מקסימלי בהתחשב בתקציב ובאילוצי הזמן שלכם.

על הצוות שלנו

מעל 10 שנות ניסיון בראייה ממוחשבת. אימנו 50+ מודלים למשימות כולל זיהוי ליקויים תעשייתיים, זיהוי אובייקטים בלוויין, ספירת אנשים בקמעונאות וזיהוי בעלי חיים בחוות. אנחנו עובדים עם YOLO, RT-DETR, Detectron2, DETR, Swin Transformer. מחסנית מלאה: PyTorch, TensorRT, ONNX, NVIDIA Triton. המומחים שלנו הם Kaggle Grandmasters ומחברי ספריות קוד פתוח ל-CV. לצוות שלנו יש 10+ שנות ניסיון ו-50+ פרויקטים מוצלחים, המספקים שירותי אימון מודלים אמינים.

צרו קשר כדי לדון בפרויקט שלכם.