יש שאלה? התחבר לקהילה בפורום הביקור של TensorFlow

סיווג תמונות

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

התמונה הבאה מציגה את הפלט של מודל סיווג התמונה באנדרואיד.

תמונת מסך של דוגמא לאנדרואיד

להתחיל

אם אתה חדש ב- TensorFlow Lite ועובד עם Android או iOS, מומלץ לבחון את היישומים הבאים של הדוגמה שיכולים לעזור לך להתחיל.

תוכל למנף את ה- API מחוץ לקופסה מספריית המשימות של TensorFlow Lite לשילוב מודלים של סיווג תמונות בכמה שורות קוד בלבד. תוכל גם לבנות צינור מסקנות מותאם אישית משלך באמצעות ספריית התמיכה של TensorFlow Lite .

דוגמת Android למטה מדגימה את היישום לשתי השיטות כמו lib_task_api ו- lib_support , בהתאמה.

צפו בדוגמה של Android

צפה בדוגמה של iOS

אם אתה משתמש בפלטפורמה שאינה אנדרואיד / iOS, או אם אתה כבר מכיר את ממשקי ה- API של TensorFlow Lite , הורד את דגם המתנע ואת הקבצים התומכים (אם רלוונטי).

הורד את דגם המתנע

תיאור המודל

איך זה עובד

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

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

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

סוג בעלי חיים הִסתַבְּרוּת
ארנב 0.07
אוֹגֵר 0.02
כֶּלֶב 0.91

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

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

תוצאות מעורפלות

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

לדוגמה, הדברים הבאים עשויים להצביע על תוצאה דו משמעית:

תווית הִסתַבְּרוּת
ארנב 0.31
אוֹגֵר 0.35
כֶּלֶב 0.34
אם המודל שלך מחזיר לעתים קרובות תוצאות מעורפלות, ייתכן שתצטרך מודל אחר ומדויק יותר.

בחירת ארכיטקטורת מודל

TensorFlow Lite מספק לך מגוון מודלים של סיווג תמונות אשר כולם מאומנים במערך הנתונים המקורי. ארכיטקטורות מודל כמו MobileNet, Inception ו- NASNet זמינות בדף המודלים המתארחים . כדי לבחור את הדגם הטוב ביותר למקרה השימוש שלך, עליך לשקול את הארכיטקטורות הבודדות, כמו גם כמה מהפשרות בין דגמים שונים. חלק מהפשרות של מודלים אלה מבוססות על מדדים כגון ביצועים, דיוק וגודל המודל. לדוגמה, ייתכן שתצטרך מודל מהיר יותר לבניית סורק ברקודים בעוד שאתה מעדיף מודל איטי ומדויק יותר עבור אפליקציית הדמיה רפואית. שים לב כי מודלי סיווג התמונות שסופקו מקבלים גדלים שונים של קלט. בחלק מהדגמים, זה מצוין בשם הקובץ. לדוגמא, המודל של Mobilenet_V1_1.0_224 מקבל קלט של 224x224 פיקסלים. כל הדגמים דורשים שלושה ערוצי צבע לפיקסל (אדום, ירוק וכחול). מודלים כמותיים דורשים 1 בית לערוץ, ודגמי float דורשים 4 בתים לערוץ. דוגמאות הקוד של Android ו- iOS מדגימות כיצד לעבד תמונות מצלמה בגודל מלא לפורמט הנדרש עבור כל דגם.

שימושים ומגבלות

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

התאמה אישית של המודל

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

אמות מידה לביצועים

ביצועי המודל נמדדים במונחים של משך הזמן שלוקח למודל להפעיל מסקנה על פיסת חומרה מסוימת. ככל שהזמן נמוך יותר, כך הדגם מהיר יותר. הביצועים שאתה דורש תלוי ביישום שלך. ביצועים יכולים להיות חשובים עבור יישומים כמו וידאו בזמן אמת, שם עשוי להיות חשוב לנתח כל פריים בזמן שלפני שרטוט הפריים הבא (למשל, ההסקה חייבת להיות מהירה יותר מ- 33ms בכדי לבצע הסקה בזמן אמת בזרם וידאו 30fps) . TensorFlow Lite כימת ביצועי דגמי MobileNet בין 3.7ms ל 80.3 ms. מספרי ביצועי ביצועים נוצרים בעזרת הכלי המידוד .
שם המודל גודל הדגם התקן NNAPI מעבד
Mobilenet_V1_1.0_224_quant 4.3 Mb פיקסל 3 (אנדרואיד 10) 6ms 13ms *
פיקסל 4 (אנדרואיד 10) 3.3ms 5ms *
iPhone XS (iOS 12.4.1) 11ms **

* 4 חוטים בשימוש.

** 2 אשכולות המשמשים ב- iPhone לקבלת תוצאת הביצועים הטובה ביותר.

דיוק המודל

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

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

ה- TensorFlow Lite כימת את דיוק ה- Top-5 של דגמי MobileNet בין 64.4 ל- 89.9%.

גודל הדגם

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

גדלי דגמי MobileNet של TensorFlow Lite מכמתים נעים בין 0.5 ל -3.4 מגהבייט.

המשך קריאה ומשאבים

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