צור קשר

בינה מלאכותית

פריקת יולוב8: יצירת מופת מחשב ויראלית של Ultralytics

mm
מְעוּדכָּן on
תמונה מוצגת בבלוג עבור YOLOv8

עד כה, זיהוי אובייקטים בתמונות באמצעות דגמי ראייה ממוחשבת עמד בפני מחסום גדול של כמה שניות של פיגור עקב זמן עיבוד. עיכוב זה הפריע לאימוץ מעשי במקרים של שימוש כמו נהיגה אוטונומית. עם זאת, שחרור מודל הראייה הממוחשבת של YOLOv8 על ידי Ultralytics פרצה את עיכוב העיבוד. הדגם החדש יכול לזהות אובייקטים בזמן אמת בדיוק ובמהירות שאין שני להם, מה שהופך אותו לפופולרי בחלל הראייה הממוחשבת.

מאמר זה בוחן את YOLOv8, את היכולות שלו וכיצד אתה יכול לכוונן וליצור מודלים משלך באמצעות מאגר הקוד הפתוח Github שלו.

יולוב8 הסביר

YOLOv8-Ultralytics

Yolo (You Only Live Once) הוא מודל ראייה ממוחשבת פופולרי המסוגל זיהוי ופילוח עצמים בתמונות. הדגם עבר כמה עדכונים בעבר, כאשר YOLOv8 מסמן את הגרסה ה-8.

כפי שהוא נראה, YOLOv8 מתבסס על היכולות של גרסאות קודמות על ידי הצגת תכונות חדשות ושיפורים רבי עוצמה. זה מאפשר זיהוי עצמים בזמן אמת בנתוני התמונה והווידאו עם דיוק ודיוק משופרים.

מ-v1 ל-v8: היסטוריה קצרה

יולוב1: יצאה בשנת 2015, הגרסה הראשונה של YOLO הוצגה כמודל זיהוי אובייקטים חד-שלבי. התכונות כללו את המודל שקרא את התמונה כולה כדי לחזות כל תיבה תוחמת בהערכה אחת.

יולוב2: הגרסה הבאה, שפורסמה ב-2016, הציגה ביצועים מובילים במדדים כמו PASCAL VOC ו-COCO ופועלת במהירויות גבוהות (67-40 FPS). זה יכול גם לזהות במדויק יותר מ-9000 קטגוריות אובייקטים, אפילו עם נתוני זיהוי ספציפיים מוגבלים.

יולוב3: Yolov2018, שהושק בשנת 3, הציגה תכונות חדשות כגון רשת עמוד שדרה יעילה יותר, עוגנים מרובים ואיגום פירמידה מרחבית למיצוי תכונות מרובות קנה מידה.

יולוב4: עם שחרורו של Yolov4 בשנת 2020, הוצגה טכניקת הגדלת הנתונים החדשה של Mosaic, שהציעה יכולות אימון משופרות.

יולוב5: פורסם בשנת 2021, Yolov5 הוסיף תכונות חדשות עוצמתיות, כולל אופטימיזציה של היפרפרמטרים ומעקב ניסויים משולב.

יולוב6: עם יציאת Yolov6 בשנת 2022, המודל היה בקוד פתוח כדי לקדם פיתוח מונחה קהילה. הוצגו תכונות חדשות, כגון אסטרטגיית זיקוק עצמי חדשה ואסטרטגיית אימון בעזרת עוגן (AAT).

יולוב7: פורסם באותה שנה, 2022, Yolov7 שיפר את הדגם הקיים במהירות ובדיוק והיה לדגם זיהוי העצמים המהיר ביותר בזמן השחרור.

מה הופך את YOLOv8 לבולט?

תמונה המציגה זיהוי רכב

הדיוק והמהירות הגבוהה ללא תחרות של YOLOv8 הופכים את דגם הראייה הממוחשב לבלוט מהגרסאות הקודמות. זהו הישג משמעותי שכן כעת ניתן לזהות אובייקטים בזמן אמת ללא עיכובים, בניגוד לגרסאות קודמות.

אבל חוץ מזה, YOLOv8 מגיע עמוס ביכולות חזקות, הכוללות:

  1. ארכיטקטורה הניתנת להתאמה אישית: YOLOv8 מציע ארכיטקטורה גמישה שמפתחים יכולים להתאים אישית לדרישות הספציפיות שלהם.
  2. אימון מסתגל: יכולות האימון האדפטיבי החדשות של YOLOv8, כגון איזון תפקודי אובדן במהלך אימון וטכניקות, משפרות את קצב הלמידה. קח את אדם, שתורם לדיוק טוב יותר, התכנסות מהירה יותר וביצועי דגם טובים יותר.
  3. ניתוח תמונה מתקדם: באמצעות יכולות פילוח סמנטי וחיזוי מחלקות חדשות, המודל יכול לזהות פעילויות, צבע, מרקם ואפילו יחסים בין אובייקטים מלבד פונקציונליות הליבה של זיהוי אובייקטים.
  4. הגדלת נתונים: טכניקות חדשות להגדלת נתונים עוזרות להתמודד עם היבטים של וריאציות תמונה כמו רזולוציה נמוכה, חסימה וכו', במצבי זיהוי אובייקטים בעולם האמיתי שבהם התנאים אינם אידיאליים.
  5. תמיכה בעמוד השדרה: YOLOv8 מציע תמיכה עבור עמודי שדרה מרובים, כולל CSPDarknet (עמוד שדרה ברירת מחדל), EfficientNet (עמוד שדרה קל משקל), ו- ResNet (עמוד שדרה קלאסי), שמשתמשים יכולים לבחור מהם.

משתמשים יכולים אפילו להתאים אישית את עמוד השדרה על ידי החלפת CSPDarknet53 בכל ארכיטקטורת CNN אחרת התואמת לממדי הקלט והפלט של YOLOv8.

אימון וכיוונון עדין של YOLOv8

ניתן לכוונן את דגם ה-YOLOv8 כך שיתאים למקרי שימוש מסוימים או להיות מאומן לחלוטין מאפס ליצירת דגם מיוחד. פרטים נוספים על נהלי ההכשרה ניתן למצוא ב תיעוד רשמי.

בוא נחקור איך אתה יכול לבצע את שתי הפעולות הללו.

כוונון עדין של YOLOV8 עם מערך נתונים מותאם אישית

פעולת הכוונון העדין טוענת דגם קיים ומשתמשת במשקלי ברירת המחדל שלו כנקודת ההתחלה לאימון. באופן אינטואיטיבי, הדגם זוכר את כל הידע הקודם שלו, ופעולת הכוונון העדין מוסיפה מידע חדש על ידי כוונון המשקולות.

ניתן לכוונן את מודל YOLOv8 עם קוד ה-Python שלך או דרך ממשק שורת הפקודה (CLI).

1. כוונן מודל YOLOv8 באמצעות Python

התחל בייבוא ​​חבילת Ultralytics לקוד שלך. לאחר מכן, טען את הדגם המותאם אישית שברצונך לאמן באמצעות הקוד הבא:

ראשית, התקן את ספריית Ultralytics מההפצה הרשמית.

# התקן את חבילת ultralytics מ- PyPI
pip להתקין ultralytics

לאחר מכן, בצע את הקוד הבא בתוך קובץ Python:

מ- ultralytics ייבוא ​​YOLO

# טען דגם
model = YOLO(‘yolov8n.pt')  # טען מודל מאומן מראש (מומלץ לאימון)

# אמן את המודל במערך הנתונים של MS COCO
results = model.train(data='coco128.yaml', epochs=100, imgsz=640)

כברירת מחדל, הקוד יאמן את המודל באמצעות מערך הנתונים של COCO למשך 100 עידנים. עם זאת, אתה יכול גם להגדיר את ההגדרות האלה כדי להגדיר את הגודל, התקופה וכו', בקובץ YAML.

לאחר שתאמן את המודל עם ההגדרות ונתיב הנתונים שלך, עקוב אחר ההתקדמות, בדוק וכוונן את המודל, והמשך אימון מחדש עד להשגת התוצאות הרצויות שלך.

2. כוונן דגם YOLOv8 באמצעות ה-CLI

כדי לאמן מודל באמצעות ה-CLI, הפעל את הסקריפט הבא בשורת הפקודה:

yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

הפקודה CLI טוענת את מודל `yolov8n.pt` המאומן מראש ומאמנת אותו בהמשך על מערך הנתונים המוגדר בקובץ `coco8.yaml`.

יצירת דגם משלך עם YOLOv8

יש בעצם 2 דרכים ליצור מודל מותאם אישית עם מסגרת YOLO:

  • אימון מאפס: גישה זו מאפשרת לך להשתמש בארכיטקטורת YOLOv8 המוגדרת מראש אך לא תשתמש בשום משקולות מאומנות מראש. האימון יתבצע מאפס.
  • ארכיטקטורה מותאמת אישית: אתה מתקן את ארכיטקטורת ברירת המחדל של YOLO ומאמן את המבנה החדש מאפס.

היישום של שתי השיטות הללו נשאר זהה. כדי לאמן מודל YOLO מאפס, הפעל את קוד Python הבא:

מ- ultralytics ייבוא ​​YOLO

# טען דגם
model = YOLO(‘yolov8n.yaml')  # בנה דגם חדש מ-YAML

# אימון הדגם
results = model.train(data='coco128.yaml', epochs=100, imgsz=640)

שימו לב שהפעם, טענו קובץ '.yaml' במקום קובץ '.pt'. קובץ YAML מכיל את מידע הארכיטקטורה של המודל, ולא נטענים משקלים. פקודת האימון תתחיל לאמן את הדגם הזה מאפס.

כדי להכשיר ארכיטקטורה מותאמת אישית, עליך להגדיר את המבנה המותאם אישית בקובץ '.yaml' בדומה ל-'yolov8n.yaml' לעיל. לאחר מכן, אתה טוען את הקובץ הזה ומאמן את המודל באמצעות אותו קוד כמו לעיל.

למידע נוסף על זיהוי אובייקטים באמצעות AI וכדי להישאר מעודכן במגמות הבינה המלאכותיות האחרונות, בקר unite.ai.