בואו נעשה כיף
ברוכים הבאים לעולם ה-Computer Vision
14 בפברואר 2021
בואו נעשה כיף
14 בפברואר 2021
רכבים אוטונומיים, זיהוי וגילוי סרטן על ידי מכונה, זיהוי פנים על ידי מחשב. כל אלו נשמעים כמו דברים שלקוחים מסרטי מדע בדיוני? אז זהו שלא! בשנים האחרונות בני אדם משתמשים בטכנולוגיות מתקדמות על מנת לבצע משימות מורכבות להפליא שלעיתים אף קשות מידי לביצוע על ידי בני האדם. תחום זה נקרא Machine Learning.
כל הדוגמאות שציינו בהתחלה כמובן מסתמכות על מערכות לומדות אך מה המשותף לכולן? שהן כולם לומדות בתמונות. לכן, קיים תת-תחום של מערכות לומדות שנקרא Computer Vision שהוא תחום שמתעסק בניתוח, זיהוי וחיזוי לפי תמונות.
בכתבה זו אנחנו נפנה אתכם לספר שנחשב "Bible" בתחום הComputer Vision הלא הוא Programming Computer Vision with Python שכתב Jan Erik Solem. הספר אמנם ארוך יחסית אך אנחנו נסה להפנות אתכם לחלקים חשובים בו.
Basic Image Handling and Processing ו-OpenCV: ספריות בשפת Python שבעזרתן ניתן לבצע טעינת תמונות, ניתוח בסיסי, ציור על תמונה, הפיכת תמונות למטריצות, יצירת גרפים וכלי גרפיקה ותרשימים נוספים. למה זה חשוב? מכיוון שהצעד הראשון באלגוריתם עיבוד תמונה הוא לבצע loading לdataset של התמונות שלי ולבצע “pre-processing” (עיבוד מקדים) לקלט שלי: ניקוי רעשים, חיתוך תמונות, ביצוע masking, הפעלת פילטרים וכו'. (פרקים 1 ו-10)
בעיית clustering (בעברית: אישכול): נניח כי בידינו מיליוני תמונות של צילומי CT של מוח וברצוננו לאבחן את המטופלים ולדעת למי יש גידול סרטני ולמי אין. משימה קשה נכון? כדי לפתור את הבעיה אולי אנחנו נוכל להפריד את כל התמונות לשני אשכולות (=קבוצות) של תמונות לפי פיצ'רים (מזהים) ייחודים כלשהם שהמכונה תמצא. לאחר שחילקנו את הdataset לשתי קבוצות של תמונות דומות, מספיק להביא רופא מומחה שיסווג תמונה אחת בלבד מאחת הקבוצות ואז (בהנחה והסיווג לשני אשכולות היה תקין ב100%) אנחנו נוכל להסיק בדיוק מה הסטטוס הרפואי של כל מטופל לפי הקבוצה שאליה הוא משתייך. הבעיה הזו נקראת בעיית אשכול ותוכלו לעיין בפרק 6 על מנת לקרוא על כמה אלגוריתמים מהתחום.
חיפוש תמונות: נניח שברצונכם לחפש אדם חשוד ומסוכן שנכנס לאצטדיון כדורגל. לכן, נרצה לחפש את הפנים שלו בעזרת שימוש במצלמות האבטחה של האצטדיון בצורה נוחה ופשוטה. (פרק 7)
classification לתוכן של תמונות: נניח כי ברצונכם ליצור מערכת שתתרגם תמונות משפת הסימנים לקול. ניתן לבצע זאת על ידי צילום של הדובר.ת בשפת הסימנים ולתרגם את התוכן בעזרת מערכות לומדות לשפה בקול רם. (פרק 8)
segmentation לתמונות שבה המטרה היא להפריד תמונה לסגמנטים (חלקים): נניח כי ברצונכם לבנות מערכת לרכב אוטונומי. תחשבו על כמות המידע שעלינו, בתור נהגים, לקלוט ולעבד בזמן הנהיגה: הולכי רגל, רכבים אחרים, רוכבי אופניים, רמזורים, תמרורים, שינויי תוואי כביש וכו'. כל פריט מידע שכזה עשוי להוות משימת עיבוד שונה מבחינת המערכת ולכן הגיוני לנסות לפצל את החלקים (הסגמנטים) הללו מתוך התמונה ולהעביר לעיבוד המשך. (פרק 9)
עולם הComputer Vision הוא כמובן עולם רחב, מורכב ועמוק מאוד. המטרה של הכתבה הנוכחית היא להרחיב אופקים וקצת לאתגר אתכם (ואם אתם באמת מעוניינים אתם מוזמנים להירשם לתואר שני בתחום בMIT או בטכניון).
לינק לקריאת הספר:
http://programmingcomputervision.com/downloads/ProgrammingComputerVision_CCdraft.pdf
כמה מקורות מעולים נוספים להיכנס לעולם הComputer Vision:
181869
105532
373813