קורס רובוטיקה ובינה מלאכותית : A106-04 רובוטיקה – YOLO זיהוי עצמים על ידי מצלמה
חלק א: – זיהוי קופסא על פס יצור A.I


מודל מאומן לזיהוי קופסאות
https://drive.google.com/file/d/1JrBJm1c-9mdNfCwRXBfoYSAf3f044qrd/view?usp=sharing
סרט קופסא על פס יצור
https://drive.google.com/file/d/1FZ7ZtAojTCh_g_Zs2qXPJ8gYTBT4ttUh/view?usp=sharing
תרגיל כיתה 1 זיהוי קופסא על פס יצור A.I מתוך תמונה COLAB
מטרת התרגיל: להעלות מודל מאומן box-11s.pt ותמונה מהמחשב, לבדוק אם קיימת קופסה בצבע כחול ולהציג את מיקומה (X, Y) בפיקסלים.
בלוק 1 – התקנת ספריות
בלוק 2 – העלאת מודל מהמחשב PC
בלוק 3 – העלאת תמונה וזיהוי קופסה כחולה
התוכנית תזהה קופסאות באמצעות YOLO
תרגיל כיתה 2
חלק ב : זיהוי קופסא על פס יצור A.I – סרט וידאו ANACONDA
תרגיל כיתה – זיהוי קופסאות באמצעות YOLO11
סביבת עבודה: Anaconda – Jupyter Notebook
מודל מאומן: box-11s.pt
מטרת התרגיל
לבנות תוכנית ב־Python באמצעות Anaconda ו־Jupyter Notebook, אשר טוענת סרטון וידאו מהמחשב ומזהה קופסאות באמצעות מודל YOLO מאומן.
כאשר התוכנית מזהה קופסה, היא מסמנת אותה במסגרת בצבע כחול ומציגה את מיקומה (X, Y) בפיקסלים.
כאשר הקופסה נמצאת בדיוק במרכז התמונה, התוכנית עוצרת את הסרטון ומשנה את צבע המסגרת מכחול לירוק.
הוראות לביצוע התרגיל
- הורידו את המודל המאומן לזיהוי קופסאות
box-11s.ptושמרו אותו בתיקייהC:\TEMP. - פתחו את Anaconda והפעילו Jupyter Notebook.
- צרו תוכנית חדשה בשפת Python.
- התקינו את הספריות הנדרשות להפעלת YOLO ולעיבוד וידאו.
- טענו את המודל המאומן
box-11s.ptמתוך התיקייהC:\TEMP. - טענו סרטון וידאו מהמחשב.
- הפעילו את המודל לזיהוי קופסאות בכל Frame של הסרטון.
- כאשר מזוהה קופסה, סמנו אותה במסגרת כחולה והציגו את מיקומה
(X, Y)בפיקסלים. - בדקו האם מרכז הקופסה נמצא בדיוק במרכז תמונת הווידאו.
- כאשר הקופסה מגיעה למרכז התמונה, עצרו את הסרטון ושנו את צבע המסגרת מכחול לירוק.
התוצאה הנדרשת
התוכנית תציג סרטון וידאו, תזהה קופסאות ותסמן אותן במסגרת כחולה. כאשר קופסה מגיעה בדיוק למרכז התמונה, הסרטון ייעצר והמסגרת תהפוך לירוקה.
קבצי ה 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
2. מבנה קובץ ה YAMAL data.yaml
עבור הרצה מ COLAB המבנה יהיה כך (במקרה שלנו)

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

4. יצירת קובץ אוטומטי לאימון 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 ולהציג את התמונות עם תיבות הזיהוי.
- כתוב את כל הקוד בצורה ברורה, עם הערות באנגלית ליד כל שורת קוד חשובה.
5. ניתוח הנתונים
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% — המודל מפספס הרבה עיגולים.
\\
6. יצירת תוויות
תרגיל כיתה 1 YOLO
תרגיל כיתה 1 יצירת תוויות
- הורד את ה dataset
https://drive.google.com/file/d/1klzB_6dKuv5M7YsPZB6eT8M1KLua1YOa/view?usp=sharing
2.העלה לקובלאב בנה קוד שפותח אותו ומסדר אותו לפורמט yolo ויוצר קובץ yamal
חלק ב
תרגיל כיתה 1 YOLO
- קוד תוכנה זה מעלה קובץ ARJ מ pc ל לקולאב ואז פותח את הקבצים בCOLAB
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 ולהציג את התמונות עם תיבות הזיהוי.
- כתוב את כל הקוד בצורה ברורה, עם הערות באנגלית ליד כל שורת קוד חשובה.