זיהוי אובייקטים הוא סוג של סיווג תמונה שבו רשת עצבית צופה פריטים בתמונה ומציירת תיבות תוחמות סביבם. זיהוי ולוקליזציה של דברים בתמונה התואמת קבוצה מוגדרת מראש של מחלקות מכונה זיהוי אובייקטים.
זיהוי אובייקטים (הידוע גם בשם זיהוי אובייקטים) הוא תת-תחום משמעותי במיוחד של Computer Vision מכיוון שמשימות כמו זיהוי, זיהוי ולוקליזציה מוצאות יישום רחב בהקשרים בעולם האמיתי.
גישת YOLO יכולה לעזור לך לבצע משימות אלו. במאמר זה, נסקור מקרוב את YOLO, כולל מה זה, איך זה עובד, וריאציות שונות ועוד.
אז מה זה YOLO?
YOLO היא שיטה לזיהוי וזיהוי עצמים בזמן אמת בתצלומים. זהו ראשי תיבות של You Only Look Once. Redmond et al. הציע את הגישה במאמר שפורסם לראשונה ב-2015 בכנס IEEE/CVF בנושא ראייה ממוחשבת וזיהוי דפוסים (CVPR).
פרס OpenCV People's Choice הוענק לעיתון. בניגוד לשיטות זיהוי אובייקטים קודמות, שבהן ייעדו מחדש את המסווגים לבצע זיהוי, YOLO מציעה שימוש בקצה לקצה רשת עצבית שמנבא תיבות תוחמות והסתברויות מחלקות בו זמנית.
YOLO מייצרת תוצאות מתקדמות על ידי נקיטת גישה חדשה ביסודה לזיהוי אובייקטים, העולה בקלות על שיטות זיהוי אובייקטים קודמות בזמן אמת.
YOLO עובד
שיטת YOLO מחלקת את התמונה ל-N רשתות, שלכל אחת מהן סקטור ממדי SxS בגודל שווה. כל אחת מרשתות N אלו אחראית על איתור ואיתור האובייקט שהוא מכיל.
רשתות אלו, בתורן, חוזות קואורדינטות של תיבה תוחמת B ביחס לקואורדינטות התא, כמו גם את שם הפריט והסבירות שהאובייקט יהיה נוכח בתא. בשל תאים רבים המנבאים את אותו פריט עם חיזויים מגוונים של תיבות תוחמות, טכניקה זו מפחיתה במידה ניכרת את החישוב מכיוון שגם זיהוי וגם זיהוי מטופלים על ידי תאים מהתמונה.
עם זאת, זה מייצר הרבה תחזיות כפולות. כדי לטפל בבעיה זו, YOLO משתמשת ב-Non-Maximal Suppression. YOLO מדכא את כל התיבות התוחמות עם ציוני הסתברות נמוכים יותר בדיכוי לא מקסימלי.
YOLO עושה זאת על ידי בחינת ציוני ההסתברות המקושרים לכל אפשרות ובחירה בזו עם הציון הגבוה ביותר. התיבות התוחמות עם הצומת הגדול ביותר מעל האיחוד עם התיבה התוחמת הנוכחית בסבירות גבוהה נדחקות.
תהליך זה נמשך עד להשלמת התיבות התוחמות.
וריאציות שונות של YOLO
נסתכל על כמה מגרסאות YOLO הנפוצות ביותר. בואו נתחיל.
1. YOLOv1
הגרסה הראשונית של YOLO הוכרזה ב-2015 בפרסום "אתה מסתכל רק פעם אחת: זיהוי אובייקטים מאוחד בזמן אמת" מאת ג'וזף רדמון, סנטוש דיבולה, רוס גירשיק ועלי פרהאדי.
בגלל המהירות, הדיוק ויכולת הלמידה שלו, YOLO שלטה במהירות בתחום זיהוי האובייקטים והפכה לאלגוריתם הנפוץ ביותר. במקום להתייחס לזיהוי אובייקט כבעיית סיווג, המחברים התייחסו אליו כבעיית רגרסיה עם תיבות תוחמות מופרדות גיאוגרפית והסתברויות מחלקות קשורות, אותן פתרו באמצעות יחידה אחת. רשת עצבית.
ה-YOLOv1 עיבד תמונות במהירות של 45 פריימים לשנייה בזמן אמת, בעוד שגרסה קטנה יותר, Fast YOLO, עיבדה במהירות 155 פריימים לשנייה ועדיין השיגה את ה-mAP כפול מגלאי זמן אמת אחרים.
2. YOLOv2
שנה לאחר מכן, בשנת 2016, ג'וזף רדמון ועלי פרהאדי הוציאו את YOLOv2 (הידוע גם בשם YOLO9000) בעיתון "YOLO9000: טוב יותר, מהיר יותר, חזק יותר".
יכולתו של הדגם לחזות אפילו 9000 קטגוריות פריטים נפרדות תוך כדי ריצה בזמן אמת זיכתה אותו בתואר 9000. לא רק שגרסת הדגם החדשה הוכשרה בו-זמנית על מערכי נתונים של זיהוי וסיווג אובייקטים, אלא היא גם קיבלה את Darknet-19 כקו הבסיס החדש. דֶגֶם.
מכיוון שגם YOLOv2 זכה להצלחה גדולה והפך במהרה למודל זיהוי האובייקטים המתקדם הבא, מהנדסים אחרים החלו להתנסות באלגוריתם ולייצר גרסאות YOLO ייחודיות משלהם. חלק מהם יידונו בנקודות שונות במאמר.
3. YOLOv3
בנייר "YOLOv3: שיפור מצטבר," ג'וזף רדמון ועלי פרהאדי פרסמו גרסה חדשה של האלגוריתם בשנת 2018. הוא נבנה על ארכיטקטורת Darknet-53. מסווגים לוגיסטיים עצמאיים החליפו את מנגנון ההפעלה של softmax ב-YOLOv3.
אובדן צולב אנטרופיה בינארית שימש במהלך האימון. Darknet-19 שופר ושונה ל-Darknet-53, שכעת יש לו 53 שכבות קונבולוציוניות. מלבד זאת, התחזיות נעשו בשלושה קנה מידה ברורים, מה שעזר ל-YOLOv3 לשפר את הדיוק שלו בניבוי דברים זעירים.
YOLOv3 הייתה גרסת ה-YOLO הסופית של ג'וזף רדמון, מכיוון שהוא בחר שלא לעבוד על שיפורים נוספים של YOLO (או אפילו בתחום הראייה הממוחשבת) כדי למנוע מהעבודה שלו השפעה מזיקה על העולם. כיום הוא משמש בעיקר כנקודת מוצא לבניית ארכיטקטורות ייחודיות לזיהוי אובייקטים.
4. יולוב4
אלכסיי בוצ'קובסקי, צ'יין-יאו וואנג והונג-יואן מארק ליאו פרסמו "YOLOv4: מהירות אופטימלית ודיוק זיהוי אובייקטים" באפריל 2020, שהיה האיטרציה הרביעית של אלגוריתם YOLO.
חיבורים שיוריים משוקללים, חיבורים חוצי-שלבים-חלקיים, נורמליזציה של מיני-אצווה צולבת, אימון יריבות עצמית, הפעלת מיתוס, חסימת ירידה ואובדן CIoU כולם הוצגו כחלק מארכיטקטורת SPDarknet53.
YOLOv4 הוא צאצא למשפחת YOLO, עם זאת, הוא פותח על ידי מדענים נפרדים (לא ג'וזף רדמון ועלי פרהאדי). עמוד השדרה של SPDarknet53, איגום פירמידה מרחבי, צבירה של נתיב PANet כצוואר וראש YOLOv3 מרכיבים את הארכיטקטורה שלו.
כתוצאה מכך, בהשוואה לאורה שלה, YOLOv3, YOLOv4 משיגה מדדי דיוק ממוצע גבוהים ב-10% ו-12% יותר פריימים לשנייה.
5. YOLOv5
YOLOv5 הוא פרויקט קוד פתוח הכולל מגוון מודלים ואלגוריתמים לזיהוי אובייקטים המבוססים על מודל YOLO שהוכשר מראש על מערך הנתונים של COCO.
YOLOv5 הוא אוסף של מודלים לזיהוי עצמים בקנה מידה מורכב מאומן על מערך הנתונים של COCO, עם יכולות קלות עבור TTA, הרכבת מודלים, פיתוח היפרפרמטרים וייצוא ל-ONNX, CoreML ו-TFLite. מכיוון ש-YOLOv5 אינו מיישם או מפתח גישות ייחודיות, לא ניתן היה לפרסם את המאמר הרשמי. זה פשוט הרחבת PyTorch של YOLOv3.
Ultranytics השתמש בתרחיש זה כדי לפרסם את גרסת "YOLO החדשה" בחסותה. מכיוון שקיימים גם חמישה מודלים שהוכשרו מראש, דף הבית של YOLOv5 הוא די פשוט ומובנה וכתוב בצורה מקצועית, עם מספר שיעורים והצעות לגבי הדרכה ושימוש במודלים של YOLOv5.
מגבלות YOLO
למרות ש-YOLO נראה כטכניקה הטובה ביותר לפתרון איתור אובייקטים בעיות, יש לו מספר חסרונות. מכיוון שכל רשת יכולה לזהות רק פריט אחד, YOLO מתקשה לזהות ולהפריד דברים זעירים בתמונות המתרחשות בקבוצות. דברים קטנים בנחילים, כמו נחיל נמלים, קשה ל-YOLO לזהות ולאתר.
בהשוואה לשיטות זיהוי אובייקטים איטיות יותר כמו Fast RCNN, YOLO מאופיינת גם ברמת דיוק נמוכה יותר.
התחל להשתמש ב- YOLOv5
אם אתה מעוניין לראות YOLOv5 בפעולה, בדוק את GitHub הרשמי ו YOLOv5 ב- PyTorch.
סיכום
הגרסה הראשונית של YOLOv5 מהירה במיוחד, ביצועית ופשוטה לשימוש. בעוד ש-YOLOv5 אינו מוסיף שום ארכיטקטורת מודלים חדשה למשפחת YOLO, הוא מספק מסגרת אימון ופריסה חדשה של PyTorch שמשפרת את המצב העכשווי עבור גלאי אובייקטים.
יתר על כן, YOLOv5 הוא ידידותי במיוחד למשתמש ומגיע "מהקופסה" מוכן לשימוש על חפצים מותאמים אישית.
השאירו תגובה