אוהב או אויב? מנתחים עם איזה חברי כנסת אחרים הח״כים שלנו מצטלמים

אוהב או אויב? מנתחים עם איזה חברי כנסת אחרים הח״כים שלנו מצטלמים

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

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

חלק ראשון – מצמידים מזהה לפנים

לכל איש יש שם שנתנו לו הוריו

ולכל פרצוף בכל תמונה יש מזהה UUID שנתן לו האלגוריתם בענן

תחילה ניצור אוסף שלתוכו נוכל להכניס את המידע על הפנים (יש להתקין את aws-cli בשביל שהפקודה תעבוד)

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

מה שיתן לנו עבור כל תמונה פלט שנראה כמו:

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

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

חלק שני – בונים מילון זיהוי בסיסי

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

כך שבניתי לי מילון שנראה כמו:

חלק שלישי – מצמידים שם למזהה

עכשיו אחריי שיש לנו את כל המידע אנחנו יכולים לעבור על כל התמונות בהם מצאנו יותר מאדם אחד ועבור כל מזהה-פנים שמצאנו בתמונה בעזרת הפקודה הבאה אנחנו מריצים חיפוש שמחזיר רשימה לאיזה פנים זה הכי דומה:

ונקבל חזרה:

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

חלק אחרון – הרשת החברתית של הח״כים

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

כרגיל ניתן לראות את כל קוד המקור (הפעם קצת יותר מלוכלך מהרגיל) בgithub.

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

*