כברירת מחדל, ממשקי ה-API של ML Kit משתמשים במודלים של למידת מכונה שאומנו על ידי Google. המודלים האלה נועדו לכסות מגוון רחב של אפליקציות. עם זאת, יש תרחישי שימוש שבהם נדרשים מודלים ממוקדים יותר. לכן, חלק מממשקי ה-API של ML Kit מאפשרים עכשיו להחליף את מודלי ברירת המחדל במודלים מותאמים אישית של LiteRT.
Image Labeling ו-Object Detection & Tracking API תומכים במודלים מותאמים אישית לסיווג תמונות. הם תואמים למבחר של מודלים איכותיים שעברו אימון מראש ב-TensorFlow Hub או למודל מותאם אישית משלכם שאומן באמצעות TensorFlow או AutoML.
אם אתם צריכים פתרון בהתאמה אישית לדומיינים אחרים או לתרחישי שימוש אחרים, תוכלו להיעזר בהנחיות שבדף בנושא למידת מכונה במכשיר. בדף הזה מפורטים כל הפתרונות והכלים של Google ללמידת מכונה במכשיר.
היתרונות של שימוש ב-ML Kit עם מודלים בהתאמה אישית
היתרונות של שימוש במודל מותאם אישית לסיווג תמונות באמצעות ML Kit:
- ממשקי API ברמה גבוהה שקל להשתמש בהם – לא צריך להתעסק בקלט/פלט של מודלים ברמה נמוכה, בטיפול בתמונות לפני או אחרי העיבוד או בבניית צינור עיבוד.
- אין צורך למפות את התוויות בעצמכם, ML Kit מחלץ את התוויות ממטא-נתונים של מודל LiteRT ומבצע את המיפוי בשבילכם.
- תמיכה במודלים מותאמים אישית ממגוון רחב של מקורות, ממודלים שעברו אימון מראש שפורסמו ב-TensorFlow Hub ועד למודלים חדשים שאומנו באמצעות TensorFlow או AutoML.
- מותאם לשילוב עם ממשקי ה-API של המצלמה ב-Android.
ובאופן ספציפי לגבי זיהוי ומעקב אחרי אובייקטים:
- שיפור הדיוק של הסיווג על ידי איתור האובייקטים קודם והפעלת המסווג רק באזור התמונה שקשור לאובייקט.
- לספק חוויה אינטראקטיבית בזמן אמת על ידי מתן משוב מיידי למשתמשים על אובייקטים בזמן שהם מזוהים ומסווגים.
שימוש במודל שעבר אימון מראש לסיווג תמונות
אתם יכולים להשתמש במודלים של LiteRT שעברו אימון מראש, בתנאי שהם עומדים בסדרת קריטריונים. ב-TensorFlow Hub אנחנו מציעים קבוצה של מודלים שנבדקו – מ-Google או מיוצרים אחרים של מודלים – שעומדים בקריטריונים האלה.
שימוש במודל שפורסם ב-TensorFlow Hub
TensorFlow Hub מציע מגוון רחב של מודלים מאומנים מראש לסיווג תמונות – מיוצרים על ידי יוצרים שונים של מודלים – שאפשר להשתמש בהם עם ממשקי ה-API של Image Labeling (תיוג תמונות) ו-Object Detection and Tracking (זיהוי ומעקב אחרי אובייקטים). כך עושים את זה:
- בוחרים מודל מתוך אוסף המודלים שתואמים ל-ML Kit.
- מורידים את קובץ המודל .tflite מדף פרטי המודל. אם יש אפשרות כזו, בוחרים פורמט מודל עם מטא-נתונים.
- במדריכים שלנו בנושא Image Labeling API או Object Detection and Tracking API מוסבר איך לארוז קובץ מודל עם הפרויקט ולהשתמש בו באפליקציית Android או iOS.
אימון מודל משלכם לסיווג תמונות
אם אין מודל מוכן מראש לסיווג תמונות שמתאים לצרכים שלכם, יש כמה דרכים לאמן מודל LiteRT משלכם. חלק מהן מפורטות ומוסברות יותר לעומק בקטע הבא.
| אפשרויות לאימון מודל משלכם לסיווג תמונות | |
|---|---|
| AutoML |
|
| המרת מודל TensorFlow ל-LiteRT |
|
AutoML
מודלים לסיווג תמונות שאומנו באמצעות AutoML נתמכים על ידי מודלים בהתאמה אישית בממשקי ה-API של Image Labeling ושל Object Detection and Tracking. ממשקי ה-API האלה תומכים גם בהורדה של מודלים שמארחים ב-Cloud Storage.
כדי לקבל מידע נוסף על השימוש במודל שאומן באמצעות AutoML באפליקציות ל-Android ול-iOS, אפשר לעיין במדריכים למודלים בהתאמה אישית לכל API, בהתאם לתרחיש השימוש.
מודלים שנוצרו באמצעות כלי ההמרה LiteRT
אם יש לכם מודל קיים של TensorFlow לסיווג תמונות, אתם יכולים להמיר אותו באמצעות הכלי להמרה של LiteRT. חשוב לוודא שהמודל שנוצר עומד בדרישות התאימות הבאות.
כדי לקבל מידע נוסף על השימוש במודל LiteRT באפליקציות ל-Android ול-iOS, אפשר לעיין במדריכים שלנו בנושא Image Labeling API או בנושא Object Detection and Tracking API, בהתאם לתרחיש השימוש.
תאימות של מודלים ל-LiteRT
אפשר להשתמש בכל מודל LiteRT שעבר אימון מקדים לסיווג תמונות, בתנאי שהוא עומד בדרישות הבאות:
טנסורים
- למודל צריך להיות טנסור קלט אחד בלבד עם האילוצים הבאים:
- הנתונים הם בפורמט פיקסלים RGB.
- הנתונים הם מסוג UINT8 או FLOAT32. אם סוג טנסור הקלט הוא FLOAT32, צריך לציין את NormalizationOptions על ידי צירוף Metadata.
- לטנסור יש 4 מימדים : BxHxWxC, כאשר:
- B הוא גודל הקבוצה. הוא חייב להיות 1 (אין תמיכה בהסקת מסקנות בקבוצות גדולות יותר).
- W ו-H הם הרוחב והגובה של הקלט.
- C הוא מספר הערוצים הצפוי. הערך חייב להיות 3.
- למודל צריך להיות טנסור פלט אחד לפחות עם N מחלקות ו-2 או 4 ממדים:
- (1xN)
- (1x1x1xN)
- יש תמיכה מלאה רק במודלים עם ראש יחיד. יכול להיות שמודלים עם כמה ראשי תשומת לב יפיקו תוצאות לא צפויות.
מטא-נתונים
אפשר להוסיף מטא-נתונים לקובץ LiteRT כמו שמוסבר במאמר הוספת מטא-נתונים למודלים של LiteRT.
כדי להשתמש במודל עם טנסור קלט מסוג FLOAT32, צריך לציין את NormalizationOptions במטא-נתונים.
מומלץ גם לצרף את המטא-נתונים האלה לטנסור הפלט TensorMetadata:
- מפת תוויות שמציינת את השם של כל מחלקת פלט, בתור AssociatedFile עם הסוג TENSOR_AXIS_LABELS (אחרת אפשר להחזיר רק את מספרי האינדקס של מחלקות הפלט)
- סף ברירת מחדל של ציון שמתחתיו התוצאות נחשבות כבעלות רמת מהימנות נמוכה מדי מכדי שיוחזרו, כ-ProcessUnit עם ScoreThresholdingOptions