זיהוי התמונות של YOLOv8 יוצא מן הכלל, אבל אימון המודל הוא משימה חשובה שאסור לך להתעלם ממנה.
YOLOv8 הוא אלגוריתם זיהוי אובייקטים בזמן אמת שנמצא בשימוש נרחב בתחום זיהוי אובייקטים. הוא חלק מסדרת You Only Look Once (YOLO) שפותחה על ידי Ultralytics. האלגוריתם עוקב, מזהה, מפלח מופעים, מעריך תנוחות ומסווג אובייקטים בתמונות ובסרטונים. הוא שואף להיות מהיר ומדויק יותר מהאלגוריתמים הקודמים לו.
השימוש ב-YOLOv8 על מערכי נתונים ניסיוניים כמו CIFAR-10 ו-CIFAR-100 הוא לרוב קל יותר עבור פרויקטים של הוכחת מושג (POC) מאשר על מערכי נתונים בעולם האמיתי הדורשים מערכי נתונים מותאמים אישית.
הדרכה זו תדריך אותך בשלבים הכרוכים באימון YOLOv8 על נתונים מותאמים אישית.
הגדרת סביבת Python
התחל בהתקנת סביבת הפיתוח עבור הפרויקט, בצע את ההוראות שלהלן.
- עבור אל הטרמינל וצור ספרייה חדשה בשם yolov8project:
mkdir yolov8project
- נווט אל ספריית הפרויקט ו ליצור סביבה וירטואלית:
cd yolov8project
python -m venv env - לאחר מכן, הפעל את הסביבה הוירטואלית.
כדי להפעיל את הקוד שלך, עליך להתקין את Ultralytics, ספרייה לזיהוי אובייקטים ופילוח תמונות. זוהי גם תלות של YOLOv8. התקן את זה באמצעות pip על ידי הפעלת הפקודה למטה.# בווינדוס
env/Scripts/activate# על לינוקס / macOS
מקור env/bin/activatepip להתקין ultralytics
- פקודה זו מתקינה את הדגם המאומן מראש של ה-YOLOv8, yolov8n.pt. בדוק את הדגם על ידי הפעלת הפקודות למטה כדי לבצע זיהוי עם משקולות מאומנות מראש על התמונה או הסרטון שבחרת בהתאמה באמצעות YOLOv8.
אם הכל עובד בצורה מושלמת, התוצאות יהיו זמינות ב- yolov8project ספרייה ב- פועל/זיהוי/exp ספריית משנה.#זיהוי תמונה
yolo task=מצב זיהוי=ניבוי מודל=yolov8n.pt source="path/to/image.png"#זיהוי וידאו
yolo task=detect mode=predict model=yolov8n.pt source="path/to/video.mp4"
הכנת מערך הנתונים המותאם אישית שלך
השלבים להכנת מערך הנתונים המותאם אישית שלך כוללים איסוף נתונים, תיוג נתונים ופיצול נתונים (הדרכה, בדיקה, אימות).
איסוף נתונים
זהו תהליך של איסוף אוסף של תמונות שיש בהן את האובייקטים שברצונך לזהות. הקפד להשתמש בתמונות באיכות גבוהה, בפוקוס, והאובייקטים נראים בבירור. אתה יכול להשתמש במגוון כלים כדי לאסוף תמונות, כגון Google Images, Flickr או מצלמה משלך. אם אין לך מערך נתונים של תמונות, השתמש במערך הנתונים מ- תמונות פתוחות מאגר מידע. מאמר זה ישתמש בתמונת הבטיחות באתר הבנייה מערך נתונים מ-Kaggle.
תיוג נתונים
לאחר איסוף התמונות שלך, עליך לסמן אותן. משמעות הדבר היא זיהוי האובייקטים בכל תמונה והתיבות התוחמות שלהם. ישנם מספר כלים זמינים שיעזרו לך לתייג את הנתונים שלך, כגון LabelImg, CVAT ו רובופלואו. כלים אלה ניתנים לשימוש בחינם.
פיצול הנתונים
כדי להכשיר מודלים של למידת מכונה, עליך לפצל את הנתונים שלך לקבוצות הדרכה ובדיקות. נסה להשתמש ביחס פיצול של 70%-30% בעת שימוש בכמויות גדולות של נתונים. אחרת, היצמד ל-80%-20% כדי למנוע התאמה יתר או התאמה של הדגם שלך.
להשתמש מפוצלים תיקיות, כדי לפצל באופן אקראי את הנתונים שלך למערכות הרכבת, הבדיקה והאימות עם יחס הפיצול הרצוי.
הגדרת YOLOv8 עבור מערך הנתונים שלך
לאחר תיוג הנתונים שלך, המשך להגדיר את YOLOv8 עבור מערך הנתונים המותאם אישית שלך. זה כרוך ביצירת קובץ תצורה המציין את הדברים הבאים:
- הדרך לנתוני האימון שלך.
- הנתיב לנתוני האימות שלך.
- מספר השיעורים שברצונך לזהות.
צור קובץ config.yaml כדי לאחסן את התצורה:
נָתִיב:(מערך נתוניםמַדרִיךנָתִיב)
רכבת:(רכבתמערך נתוניםתיקייהנָתִיב)
מִבְחָן:(מִבְחָןמערך נתוניםתיקייהנָתִיב)
תָקֵף:(מַתַן תוֹקֵףמערך נתוניםתיקייהנָתִיב)# חוגים
nc:5# להחליף בהתבסס על מספר המחלקות של מערך הנתונים שלך
# שמות כיתות
# החלף את כל שמות הכיתות בשמות הכיתות שלך
שמות:['כיתה 1','כיתה2','כיתה 3','כיתה 4','כיתה 5']
יצירת קובץ התצורה היא דרך מועילה למבנה ולאחסן את הפרמטרים החיוניים עבור מודל הראייה הממוחשבת שלך. הקפד לעדכן את קובץ config.yaml בהתאם לאופי ולמבנה של מערך הנתונים שלך.
הקפד להשתמש בנתיבים הנכונים עבור מערכי הנתונים שלך, שכן אימון המודל מסתמך באופן מלא על קובץ התצורות.
הדרכה של YOLOv8 על נתונים מותאמים אישית
לאחר שתיצור את קובץ התצורה, התחל לאמן את YOLOv8. השתמש בכלי שורת הפקודה YOLOv8 כדי לאמן את המודל שלך. כלי שורת הפקודה לוקח מספר פרמטרים, כגון הנתיב לקובץ התצורה, מספר העידנים וגודל התמונה כדלקמן:
yolo task=מצב זיהוי=דגם רכבת=yolov8n.pt data=path/to/config.yaml epochs=10 imgsz=640
ישנם מספר חלקים לפקודה זו.
מְשִׁימָה מגדיר את סוג המשימה: זיהוי, פילוח או סיווג. מצב מייצג פעולה: רכבת, חיזוי, ערך, ייצוא, מסלול או מדד. דֶגֶם הוא הדגם לשימוש, במקרה זה, yolov8n.pt. אתה יכול גם להשתמש ב-yolov8s/yolov8l/yolov8x.
תקופות מייצג את מספר סבבי האימונים (10). imgsz מייצג את גודל התמונה (640). יש להגדיר תמיד את גודל התמונה לכפולה של 32.
הנה דוגמה לתפוקה שאתה יכול לצפות:
הזמן המשמש לאימון תלוי בגודל מערך הנתונים שלך, במספר העידנים ובמספר השיעורים שברצונך לזהות. לאחר השלמת תהליך האימון, יהיה לך מודל YOLOv8 מאומן שבו תשתמש כדי לזהות אובייקטים בתמונות ובסרטונים.
לאחר סיום האימון, עשה מסקנות עם המשקולות החדשות, best.pt
yolo task=detect mode=predict model="runs/train/weights/best.pt" source="image.png"
נווט אל runs/train/exp/weights/best.pt ספרייה כדי לגשת למשקולות המותאמות אישית. YOLOv8 יאחסן את התמונה החזויה ב- פועל/זיהוי/exp ספריית משנה.
הערכת ביצועי הדגם
אתה יכול להעריך את הביצועים של מודל YOLOv8 באמצעות הפקודה הבאה שמעריכה את המודל על קבוצה של תמונות בדיקה:
yolo val model=yolov8n.pt data=path/to/config.yaml batch=1 imgsz=640
התוצאות הצפויות הן כדלקמן:
תהליך ההערכה יפיק מדדים שונים, כגון דיוק, ריקול וציון F1. מדד הדיוק מודד את אחוז העצמים שזוהו בצורה נכונה. מדד ההיזכרות מודד את אחוז האובייקטים ש-YOLOv8 מזהה. ציון F1 הוא ממוצע משוקלל של מדדי הדיוק והזכירה.
פריסת דגם YOLOv8 המותאם אישית שלך
בדוק את הביצועים של דגם ה-YOLOv8 שלך.
yolo detect predict model=path/to/best.pt source='path/to/image.jpg'
הפלט הוא כדלקמן:
לאחר מכן, שמור את המשקולות של הדגם בקובץ.
yolo export model=path/to/best.pt format=onnx
השתמש בקובץ כדי לטעון את המודל ליישום שלך והשתמש בו כדי לזהות אובייקטים בזמן אמת. אם אתה פורס את המודל ל-a שירות ענן, השתמש בשירות הענן כדי לזהות אובייקטים בתמונות ובסרטונים שנמצאים בשירות.
YOLOv8 טייק אווי
צוות Ultralytics שיפר ללא הרף את דגמי סדרת YOLO. זה הפך אותם למובילים בתעשייה בטכנולוגיית זיהוי אובייקטים ובתחום הראייה הממוחשבת.
ה-YOLOv8 הוא דגם משופר שתוכל להשתמש בו כדי לטפל בסוגים רבים של פרויקטים של ראייה ממוחשבת.