אז נתחיל במהי ראייה ממוחשבת? ראייה ממוחשבת עוסקת בקבלת קלט ויזואלי כגון תמונה, סרטון וידאו, פריימים ממצלמה וכיוב', וניתוח הקלט בניסיון לקבל מידע קונקרטי או חלקי לגבי מה קורה בקלט.
זה קצת ערטילאי אז נביא מספר דוגמאות:
Face Detection - בהנתן תמונה, לסמן בעיגול למשל את רכיבי הפנים. למשל לסמן בעיגול פנים שלמים, עיניים ואף, אוזן, פרופיל וכו'.
http://sipl.technion.ac.il/UploadedFiles/opencvFaceDetection.jpg
אחד האלגוריתמים הנפוצים הוא זה של Viola ו-Jones, הומצא נדמה לי ב-2001. הוא אלגוריתם יותר כללי ל-Detection של אובייקטים בעזרת מכונת למידה. למי שקצת מתעניין, להלן מאמר קצרצר.
Face Recognition - בהנתן מאגר של תמונות של אנשים (training set) ותמונה נוספת של בן אדם להחזיר את התמונה במאגר שעפ"י האלגוריתם מייצגת את התמונה שלו, או להצהיר כי אף אחת מהתמונות במאגר הן אינן שלו.
* אני אדבר על זה בהרחבה *
Video tracking - מעקב אחרי אובייקטים. בהנתן קלט ממצלמה וסימון אובייקט עליו יש לעקוב, האלגוריתם "תופס" את האובייקט בכל רגע נתון.
לחץ כאן לצפיה דרך יוטיוב
נושא נוסף שלוהט היום הוא כל התחום של augmented reality.
augmented reality - קשה לתאר את זה בעברית (כי בניגוד ל-virtual reality, הנושא החדש augmented קצת שונה וישן יותר virtual reality), אני אעתיק מויקיפדיה את ההגדרה באנגלית למי שלא שמע:
Augmented reality (AR) is a term for a live direct or indirect view of a physical real-world environment whose elements are augmented by virtual computer-generated imagery.
קודם כל, אפשר לשים לב שקיימת חפיפה מסויימת למשל בין ראייה ממוחשבת לגרפיקה ממוחשבת (למי שלא יודע ויכול לנחש - גרפיקה ממוחשבת מתמקדת בתחום של עיבוד תמונה ממימדים שונים). אין עם זה בעייה, צריך ורצוי לקבל את התפישה לפיה יש בעיות ששייכות פשוט לשני התחומים (לדוגמא ייצוב תמונה, מחיקת רעשים מתמונה, קליברציה של מצלמה - כל אלו שייכות לשני התחומים).מבוא זה נחמד ודוגמאות יש בשפע.
בוא נתחיל להתמקד קצת - זיהוי פנים
החלטתי לדבר על נושא מעניין, אם כי קצת קשה, שהולך ומתפתח כל הזמן והוא הנושא של זיהוי פנים.לפני שניגשתי לחקר התחום, קראתי לא מעט מאמרים. חלקם השוו בצדק בין בני אדם למחשבים. אם כן, עפ"י מאמר יחסית מעודכן ומעניין (Face Recognition Algorithms Surpass Humans Matching Faces Over Changes in Illumination) יכולות המחשוב לא רעות בכלל ביחס לבני האדם.
ערכו ניסוי כדלהלן:
המטרה הייתה לבצע השוואה בין יכולות האדם למחשב בנוגע לזיהוי הפנים הבא - בהנתן 2 תמונות של פנים בתנאי תאורה שונים לקבוע האם מדובר באותו אדם. יצרו מספר קבוצות מדגם של אנשים, מולם התמודדו מספר אלגוריתמים, 3 מהם מהתעשייה ועוד 4 לדעתי פותחו באוניברסיטאות שונות (אני משחזר את הניסוי מהראש). ביצעו מספר ניסויים כאשר בכל ניסוי הוצג למחשב ולאדם מספר זוגות של תמונות פנים ושניהם היו צריכים לקבוע רמת likelihood, עד כמה הם דומים. בכל ניסוי צומצם הזמן בו הם רואים את תמונות הפנים, בהתחלה זמן בלתי מוגבל, אח"כ 2 שניות ולבסוף חצי שנייה. כמו כן הניסוי בוצע עבור תמונות בתנאי תאורה שונים וזהים.
אני מסביר על הניסוי מאד בכללי, מכיוון שמדובר בניסוי יחסית מסובך ויש המון פרטים שחסכתי מכם. המטרה שלי היא להגיע לתוצאה והיא שרמת הביצועים של המחשב ושל בני האדם הייתה מפתיעה.
להלן תוצאות:
1. באופן מפתיע, כאשר הוצגו לבני האדם זוג פנים בזמן בלתי מוגבל על פני השהייה של 2 שניות, התוצאות לא היו טובות יותר.
2. באופן לא כל כך מפתיע, עבור תמונות פנים "קשות" יותר, שיעורי ההצלחה של בני האדם היו טובים פחות.
3. כאשר זמן ההשהייה ירד לחצי שנייה (זמן יחסית איכותי לזיהוי REAL TIME) שיעורי ההצלחה של בני האדם ירדו משמעותית.
יותר מעניין - מחשב מול בן אדם:
כפי שניתן לראות, בתמונות הפנים הקשות גברו 3 אלגוריתימים (גאווה אקדמאית - כולם שייכים לאקדמיה ולא לתעשייה ;)) על בני האדם.
אתם חייבים להודות - זה מגניב, זה ממש מגניב אפילו שזה קורה. זה אפילו קצת מפתיע. זאת אומרת, האלגוריתמים גברו באופן חד משמעי על בני האדם. תבינו גם שלא מדובר בסתם ניסוי קטן, אלא בניסוי מאוד גדול ומאוד מבוקר. ובכל זאת:
א. תמונות הפנים היו תמונות נוחות מהבחינה שכולן היו חזיתיות (חזית הכוונה ל-frontal images).
ב. לבני האדם יש את היתרון של ידע אפריורי. אם אנחנו מכירים את הבן אדם, נוכל לזהות אותו בקלות.
ג. נשים לב שמדובר בהשוואה קצת מוזרה, כי זה לא הזיהוי פנים כפי שהגדרתי אותו (כזכור יש מאגר קיים ובהנתן פרצוף להגיד אם הוא שייך) אלא זאת מודיפיקציה מסויימת שלא קל לעשות ממנה רדוקציה (אם בכלל) לרוב הבעיות של זיהוי פנים כפי שאנחנו חושבים עליהן. ואכן, מערכות לזיהוי פנים מסתבר שמתחילות לפשל כאשר מאגר הנתונים של הפרצופים הולך וגדל. ככל שהוא גדול יותר, כך בהנתן פרצוף חדש יש הסתברות גבוהה יותר לשגיאות של false positive - מתאים לבן אדם במאגר בן אדם לא נכון.
ועדיין, זה מרשים. ועוד מדובר בתוצאה לא עדכנית לשנים אלו.
לתחרות קראו Face Recognition Grand Challenge, ובאופן דומה עשו גם תחרות של MBGC להלן Multiple Biometric Grand Challenge. זה נושא אחר, בהזדמנות
אז יש לנו למה לצפות. במידה ויהיה ביקוש, אז במאמר הבא נזכיר מספר בעיות של מערכות לזיהוי פנים (נתתי פה קצת אינטואיציה איפה היא נופלת) ונדבר בכללי על אלגוריתמים לזיהוי פנים, נתעמק בזה שמשלב PCA + SVM.
עד כאן להיום,
מקווה שנהנתם