בדל איך עובד סיווג תמונה? - Unite.AI
צור קשר
כיתת אמן בינה מלאכותית:

AI 101

איך עובד סיווג תמונה?

mm
מְעוּדכָּן on

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

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

סיווג ברמת פיקסלים לעומת סיווג מבוסס אובייקט

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

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

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

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

עיבוד מוקדם של נתוני תמונה לזיהוי אובייקטים

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

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

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

צילום: אדריאן רוזברוק באמצעות Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)

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

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

אלגוריתמים ללימוד מכונה

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

השכנים הקרובים ביותר

K-Nearest Neighbors הוא אלגוריתם סיווג הבוחן את דוגמאות ההדרכה הקרובות ביותר ובוחן את התוויות שלהן כדי לברר את התווית הסבירה ביותר עבור דוגמה נתונה למבחן. כשמדובר בסיווג תמונות באמצעות KNN, וקטורי התכונות והתוויות של תמונות האימון מאוחסנים ורק וקטור התכונות מועבר לאלגוריתם במהלך הבדיקה. לאחר מכן, הווקטורים של תכונות האימון והבדיקה מושווים זה לזה לצורך דמיון.

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

תמיכה במכונות וקטוריות

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

תפיסות רב-שכבתיות (רשתות עצביות)

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

אלגוריתמי למידה עמוקה (CNNs)

תמונה: APhex34 באמצעות Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Typical_cnn.png)

אלגוריתם סיווג התמונות הנפוץ ביותר בתקופה האחרונה הוא ה-Convolutional Neural Network (CNNs). CNNs הם גרסאות מותאמות אישית של רשתות עצביות המשלבות את הרשתות העצביות הרב-שכבתיות עם שכבות מיוחדות המסוגלות לחלץ את התכונות החשובות והרלוונטיות ביותר לסיווג של אובייקט. CNNs יכולים לגלות, ליצור וללמוד תכונות של תמונות באופן אוטומטי. זה מצמצם מאוד את הצורך לתייג ולפלח תמונות באופן ידני כדי להכין אותן לאלגוריתמים של למידת מכונה. יש להם גם יתרון על פני רשתות MLP מכיוון שהם יכולים להתמודד עם פונקציות אובדן לא קמור.

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

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

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