מבוא לבינה מלאכותית : RB33-16
קישור : https://docs.ultralytics.com/models/yolo11#supported-tasks-and-modes
נורמוליזיישן של הנתונים YOLO

איך מנרמלים
Oriented Bounding Boxes Object Detection
נעבור על : https://docs.ultralytics.com/tasks/obb#visual-samples
חזרה קצרה על מבנה קבצי ה DATASET — YOLO
- מבנה הספרייה הייחודי של YOLO ב PC
- נניח שהתקנו את הקבצים הרלוונטיים c:\temp1

ניתן לראות ההרכב הידוע של TRAIN , VAL ,TEST
תוכן הקבצים למשל ב TRAIN IMAGES

תוכן הקבצים למשל ב TRAIN LABELS

קישור להורדה : https://drive.google.com/file/d/1QFRAFagc–lyL3l0pxGHf6d8I8sR32XS/view?usp=sharing
נזכיר

0: circle
1: triangle
מבנה קובץ ה YAMAL data.yaml
עבור הרצה מ COLAB המבנה יהיה כך (במקרה שלנו)

הערה : אם נריץ ב PC עבור אנקונדה או VS STUDIO CODE יהיה מותאם ל PC

יצירת קובץ אוטומטי לאימון YOLO שלבים
כתוב קוד Python מלא עבור Google Colab שמבצע אימון למודל YOLO11 על דאטהסט בפורמט YOLO.
הקוד צריך לבצע את השלבים הבאים:
- התקנת הספריות הנדרשות, כולל Ultralytics YOLO (קוד התקנה בבלוק ראשון לאחריו כתוב את שאר הקוד בבלוק נוסף )
- טעינת הדאטהסט מקובץ ZIP שהמשתמש מעלה מהמחשב ל-Colab.
- חילוץ קובץ ה-ZIP והצגת מבנה התיקיות לאחר החילוץ.
- בדיקה שקיים קובץ data.yaml תקין, כולל:
train
val
test
names
nc - יצירת מודל YOLO11 חדש או טעינת מודל YOLO11 מוכן מראש.
- אימון המודל במשך 30 epochs.
- שמירת תוצאות האימון בתיקיית runs/detect/train.
- הצגת גרפים של תהליך האימון, כולל:
train loss
val loss
precision
recall
mAP50
mAP50-95 - בסיום האימון יש להדפיס הודעת סיום ברורה.
- יש להציג את הנתיבים המלאים לקובצי המודל:
best.pt
last.pt - לאחר האימון יש להריץ בדיקה על תיקיית test ולחשב את ביצועי המודל.
- יש להציג סיכום תוצאות על test, כולל:
precision
recall
mAP50
mAP50-95 - יש להריץ prediction על מספר תמונות מתוך תיקיית test ולהציג את התמונות עם תיבות הזיהוי.
- כתוב את כל הקוד בצורה ברורה, עם הערות באנגלית ליד כל שורת קוד חשובה.
ניתוח הנתונים
Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 10/10 0G 0.3358 0.3325 0.8169 8 320: 100% ━━━━━━━━━━━━ 9/9 10.6s/it 1:35 Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 2/2 5.1s/it 10.3s all 20 25 0.931 0.867 0.944 0.906
train loss שגיאת המודל בזמן האימון.
דוגמה טובה: 0.3 — המודל למד לזהות טוב עיגול ומשולש.
דוגמה גרועה: 3.0 — המודל עדיין טועה הרבה בצורה או במיקום.
val loss שגיאה על תמונות חדשות שלא היו באימון.
טוב: 0.4 — המודל מצליח גם על תמונות חדשות.
גרוע: 2.5 — המודל לא מכליל טוב, אולי למד בעל פה.
mAP50 דיוק הזיהוי כאשר מספיק שהתיבה תחפוף לפחות 50% לאובייקט.
טובה: 0.95 — המודל מזהה כמעט את כל העיגולים והמשולשים.
גרועה: 0.45 — הרבה תיבות לא במקום או זיהויים חסרים.
mAP50-95 מדד קשה יותר שבודק תיבות מדויקות מאוד.
טובה: 0.75 — התיבות סביב העיגול והמשולש מדויקות.
גרועה: 0.25 — המודל אולי מזהה, אבל התיבה לא מדו
precision recall
נתון : בתמונה יש באמת 4 משולשים.
המודל סימן 5 משולשים. מתוך 5 הסימונים:
3 באמת משולשים 2 טעויות — למשל עיגולים שסומנו כמשולש
precision בודק מתוך מה שהמודל סימן:
3 / 5 = 60%
מתוך 5 זיהויים של משולש, רק 3 היו נכונים.
recall בודק מתוך מה שבאמת היה בתמונה:
3/4 = 75%
כלומר: מתוך 4 משולשים אמיתיים, המודל מצא 3.
ההבדל:
precision מתוך כל מה שהמודל זיהה — כמה באמת נכון.
תוצאה טובה: 95% — זיהה 100 עיגולים, אבל רק 95 באמת עיגולים.
תוצאה גרועה: 50% — חצי מהזיהויים שגויים.
recall מתוך כל העיגולים האמיתיים — כמה המודל מצא.
טובה: 90% — היו 100 עיגולים, המודל מצא 90.
גרועה: 40% — המודל מפספס הרבה עיגולים.
\\\
יצירת תוויות
תרגיל כיתה 1 YOLO
תרגיל כיתה 1 יצירת תוויות
- הורד את ה dataset
https://drive.google.com/file/d/1klzB_6dKuv5M7YsPZB6eT8M1KLua1YOa/view?usp=sharing
2.העלה לקובלאב בנה קוד שפותח אותו ומסדר אותו לפורמט yolo ויוצר קובץ yamal
חלק ב
תרגיל כיתה 1 YOLO
- קוד תוכנה זה מעלה קובץ ARJ מ pc ל לקולאב ואז פותח את הקבצים בCOLAB
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# ========================== # COLAB: upload RAR and extract # ========================== from google.colab import files import os # install RAR extractor !apt-get update -qq !apt-get install -y unrar # output folder OUT_DIR = "/content/my_uploaded_files" os.makedirs(OUT_DIR, exist_ok=True) # upload file from PC uploaded = files.upload() # extract uploaded RAR for filename in uploaded.keys(): print("Uploaded:", filename) if filename.lower().endswith(".rar"): print("Extracting RAR...") !unrar x -y "$filename" "$OUT_DIR/" print("Done extracting") else: print("Unsupported file type:", filename) # show extracted files print("\nLoaded and extracted files:") count = 0 for root, dirs, files_list in os.walk(OUT_DIR): for f in files_list: count += 1 print(os.path.join(root, f)) print("\nTotal extracted files:", count) print("Output folder:", OUT_DIR) |
2.
כתוב קוד Python מלא עבור Google Colab שמבצע אימון למודל YOLO11 על דאטהסט בפורמט YOLO.
הקוד צריך לבצע את השלבים הבאים:
- התקנת הספריות הנדרשות, כולל Ultralytics YOLO (קוד התקנה בבלוק ראשון לאחריו כתוב את שאר הקוד בבלוק נוסף )
- טעינת הדאטהסט מקובץ ZIP שהמשתמש מעלה מהמחשב ל-Colab.
- חילוץ קובץ ה-ZIP והצגת מבנה התיקיות לאחר החילוץ.
- בדיקה שקיים קובץ data.yaml תקין, כולל:
train
val
test
names
nc - יצירת מודל YOLO11 חדש או טעינת מודל YOLO11 מוכן מראש.
- אימון המודל במשך 30 epochs.
- שמירת תוצאות האימון בתיקיית runs/detect/train.
- הצגת גרפים של תהליך האימון, כולל:
train loss
val loss
precision
recall
mAP50
mAP50-95 - בסיום האימון יש להדפיס הודעת סיום ברורה.
- יש להציג את הנתיבים המלאים לקובצי המודל:
best.pt
last.pt - לאחר האימון יש להריץ בדיקה על תיקיית test ולחשב את ביצועי המודל.
- יש להציג סיכום תוצאות על test, כולל:
precision
recall
mAP50
mAP50-95 - יש להריץ prediction על מספר תמונות מתוך תיקיית test ולהציג את התמונות עם תיבות הזיהוי.
- כתוב את כל הקוד בצורה ברורה, עם הערות באנגלית ליד כל שורת קוד חשובה.
חלק ג : שימוש במודלים קיימים זיהוי רחפן







תרגיל כיתה
1.חפש מודל YOLO לזיהוי רחפניים קיים מאיפה אפשר להוריד בחינם
רמז oguilmak/Drone-Detection-YOLOv8x
2.צור תוכנה שלב ראשון טוענת את המודל ל colab לתוך ספריית /content/
3. צור קוד עבור שטוען תמונה מ PC ומציג מה זוהה בסביבת ה colab
4.איך אפשרי לדעת אם המודל טוב ומקצועי לשימוש מסחרי \ מקצועי