סיווג תמונה

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

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

צילום מסך של דוגמה לאנדרואיד

להתחיל

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

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

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

ראה דוגמה לאנדרואיד

צפה בדוגמה של 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 זמינות ב- TensorFlow Hub . כדי לבחור את הדגם הטוב ביותר עבור מקרה השימוש שלך, אתה צריך לשקול את הארכיטקטורות האישיות, כמו גם כמה מההפרעות בין דגמים שונים. חלק מהשינויים במודל מבוססים על מדדים כמו ביצועים, דיוק וגודל הדגם. לדוגמה, ייתכן שתזדקק למודל מהיר יותר לבניית סורק ברקוד בעוד שאתה עשוי להעדיף מודל איטי ומדויק יותר עבור אפליקציית הדמיה רפואית. שים לב שדגמי סיווג התמונות שסופקו מקבלים גדלים משתנים של קלט. עבור דגמים מסוימים, זה מצוין בשם הקובץ. לדוגמה, דגם Mobilenet_V1_1.0_224 מקבל קלט של 224x224 פיקסלים. כל הדגמים דורשים שלושה ערוצי צבע לכל פיקסל (אדום, ירוק וכחול). מודלים קוונטיים דורשים בתים אחד לכל ערוץ, ומודלים צפים דורשים 4 בתים לכל ערוץ. דוגמאות הקוד של Android ו- iOS מדגימות כיצד לעבד תמונות מצלמה בגודל מלא לפורמט הנדרש עבור כל דגם.

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

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

התאמה אישית של דגם

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

מדדי ביצועים

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

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

** 2 שרשורים בשימוש באייפון לקבלת תוצאת הביצועים הטובה ביותר.

דיוק הדגם

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

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

טווח דיוק Top-5 של דגמי ה-TensorFlow Lite המקוונטי של דגמי MobileNet נע בין 64.4 ל-89.9%.

גודל הדגם

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

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

קריאה נוספת ומשאבים

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