זיהוי עצמים

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

כבר בשנת 1988 הייתה קיימת במערכת הבנקאות יכולת זיהוי צ'קים בעזרת ראייה ממוחשבת, אך לאורך השנים התחום התפתח והגיע לביצועים מרשימים במקרים מאתגרים, ביניהם: זיהוי תמרורים והולכי רגל לצורך נהיגה אוטונומית, זיהוי פנים מזוויות שונות בתמונות ברשת חברתית, זיהוי נגעים ומחלות בתמונות MRI.

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

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

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

חילוץ מאפיינים מתמונה יכול להתבצע גם על ידי שימוש בגרדיאנטים, כלומר פעולת נגזרת על התמונה, המאפשרת למצוא שפות חדות המבדילות בין עצמים. אלגוריתם נפוץ בשיטה זו הוא אלגוריתם HOG (Histogram of oriented gradients), היוצר היסטוגרמה של מאפיינים של גרדיאנטים מכוונים. ממוזער|מאפייני האר לזיהוי פנים המתארים בקירוב את גשר האף |186x186 פיקסלים
בשנת 2001 פותח אלגוריתם ויולה ג'ונס עבור משימת זיהוי פנים. האלגוריתם, שהגיע לביצועים וזמני ריצה מרשימים, מבוסס על מאפייני האר (באנגלית Haar feature classifiers) ומשתמש ביכולות למידת מכונה. אלגוריתם ויולה ג'ונס מכיל כ-50 אלף פרמטרים בלבד, מה שהופך אותו לשימושי עד היום במקרים בהם כח החישוב נמוך.

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

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

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

# איסוף תמונות ויצירת מאגרי מידע גדולים ומפותחים על מנת לאמן בינה מלאכותית מסוג זה. מאגר מידע משמעותי עבור זיהוי עצמים הוא MS COCO, של חברת מיקרוסופט, המכיל 1.5 מיליון עצמים המחולקים ל-80 מחלקות סיווג שונות.
# פיתוח יכולות חומרה חזקות על מנת לאמן רשתות קונבולוציה. כיום מרבית רשתות הנוירונים מתבססות על מעבדים גרפים.

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

הסוג השני של ארכיטקטורת רשתות לזיהוי עצמים הוא מבוסס שלב אחד בלבד ובו מתבצע גם זיהוי המיקום וגם הסיווג למחלקה. הרשת שסללה את הדרך לארכיטקטורה זו היא רשת YOLO (You Only Look Once).

## ראו גם
* סגמנטציה
* זיהוי תווים אופטי (OCR)
* OpenCV
* PyTorch
* מודל bag of words בראייה ממוחשבת

## הערות שוליים

קטגוריה:למידת מכונה
קטגוריה:בינה מלאכותית
קטגוריה:אלגוריתמים