סיווג אובייקטים באפליקציות מובייל
אנו משלבים סיווג אובייקטים באפליקציות מובייל במתכונת turnkey. בניגוד לזיהוי, המודל מפיק וקטור הסתברות יחיד לכל מחלקה. זה נראה פשוט יותר, אבל כאן מפתחים עושים לרוב טעויות: בחירת סף ביטחון שגוי, התעלמות מעיבוד לאחר, ושכחת חוויית המשתמש. במאמר זה, אנו מפרקים כיצד להימנע מהמלכודות הללו ולהפוך את הסיווג לאמין וידידותי למשתמש. ניסיון עם Core ML, ML Kit, EfficientNet—מעל 5 שנים בפיתוח מובייל.
כיצד לבחור מודל סיווג?
עבור 1000 המחלקות המובילות (מוצרים, חיות, פריטי בית), MobileNetV3-Large או EfficientNetB0/B1 עובדים היטב. הם רצים out-of-the-box דרך ML Kit Image Labeling או Core ML עם מודלים מ-Apple Model Gallery. עבור תחום צר (סוגי מוצרים ספציפיים, פגמי ייצור), נדרש מודל מכוונן.
השוואה של אפשרויות פופולריות:
| מודל | גודל | דיוק (top-1) | ישימות |
|---|---|---|---|
| MobileNetV3-Large | ~5 MB | 75.6% | כללי, מהיר |
| EfficientNetB0 | ~8 MB | 77.1% | איזון בין מהירות לדיוק |
| מותאם אישית (מכוונן) | 5-10 MB | 80-90% (תלוי במערך הנתונים) | תחום צר |
| סוג פתרון | מתי לבחור | דוגמה |
|---|---|---|
| מודל מוכן | 1000 המחלקות המובילות, התחלה מהירה | ML Kit Image Labeling |
| כיוונון עדין | 10–50 מחלקות, 200–500 דוגמאות לכל מחלקה | EfficientNet מותאם אישית |
| למידה עם דוגמאות מועטות | פחות מ-50 דוגמאות לכל מחלקה | Prototypical Networks |
כיוונון עדין על מערך נתונים מותאם אישית: קחו בסיס מאומן מראש (MobileNetV2, EfficientNetB0), הקפיאו את השכבות התחתונות, ואמנו רק את השכבות העליונות על הנתונים שלכם. עבור 10–50 מחלקות, 200–500 דוגמאות לכל מחלקה עם augmentation מתאים מספיקות. פחות מכך—נדרשת גישת few-shot (Prototypical Networks). לאחר האימון, המירו ל-.mlmodel (iOS) או .tflite (Android), והוסיפו מטא-דאטה עם שמות מחלקות ופרמטרי נורמליזציה. EfficientNet הוא איזון טוב בין מהירות לדיוק.
כיצד לבחור את סף הביטחון?
הטעות הנפוצה ביותר בחוויית משתמש היא הצגת תוצאות סיווג ללא התחשבות בביטחון. המודל תמיד מחזיר התפלגות הסתברות; argmax תמיד בוחר "זוכה"—אפילו כשהמודל לא בטוח. אם המחלקה הראשונה מקבלת 0.23 והבאה אחריה 0.21, זה לא סיווג—זה אקראיות.
הגישה הנכונה: הגדירו סף (בדרך כלל 0.5–0.7 בהתאם למשימה). אם המחלקה הראשונה נופלת מתחת לסף, הציגו "לא ניתן לקבוע" או בקשו צילום חוזר. עבור משימות קריטיות (מסמכים רפואיים, משפטיים)—בדקו גם את האנטרופיה של ההתפלגות. לפי תיעוד Core ML, הסף מוגדר דרך פרמטר confidenceThreshold ב-VNCoreMLRequest.
ב-iOS דרך VNCoreMLRequest:
request.imageCropAndScaleOption = .centerCrop
let observations = results as? [VNClassificationObservation]
let confident = observations?.filter { $0.confidence > 0.65 }ב-Android דרך ML Kit request.imageCropAndScaleOption = .centerCrop let observations = results as? [VNClassificationObservation] let confident = observations?.filter { $0.confidence > 0.65 } :
val options = ImageLabelerOptions.Builder() .setConfidenceThreshold(0.65f) .build() מדוע עיבוד לאחר חשוב?
הצגת 3 המחלקות המובילות עם אחוזים מתאימה לאפליקציות חינוכיות וצרכניות. עבור אפליקציות עסקיות (אוטומציה, מחסן), יש צורך בתוצאה אחת בטוחה או כלום. עיבוד לאחר כולל לא רק את הסף אלא גם בדיקת הפער בין המחלקה הראשונה לשנייה: אם ההפרש קטן, בקשו אישור מהמשתמש.
מקרה בוחן: אפליקציית מלאי למחסן, מסווגת 87 SKU באמצעות מודל EfficientNetB0 מותאם אישית. הסף הראשוני של 0.5 נתן 12% תוצאות חיוביות שגויות. לאחר ניתוח מטריצת הבלבול, מצאנו ש-80% מהשגיאות התרחשו בין SKU עם אריזות דומות. הוספנו רמה שנייה: אם המחלקה השנייה והשלישית יחד עולות על 0.4, המפעיל מקבל הנחיה לאשר. תוצאות חיוביות שגויות ירדו ל-2.1%.
ממשק משתמש לתוצאות: אל תציפו את המשתמשים במספרים. פס התקדמות או מחוון צבע (ירוק/צהוב/אדום) נתפסים טוב יותר מאשר "73.4%". אנימציה של הופעת התוצאה דרך ImageLabeling (SwiftUI) או val options = ImageLabelerOptions.Builder() .setConfidenceThreshold(0.65f) .build() (Android) מפחיתה את התחושה של תגובת מודל "קרה".
מה כלול
כאשר אתם מזמינים יישום סיווג אובייקטים, אתם מקבלים:
- ניתוח משימה ובחירת ארכיטקטורת מודל
- כיוונון עדין על מערך הנתונים שלכם (אם נדרש)
- המרה ל-
withAnimation(iOS) /ObjectAnimator(Android) - אינטגרציה לתוך האפליקציה עם הגדרת זרימת נתונים
- כיוונון סף ביטחון ועיבוד לאחר
- פיתוח ממשק משתמש להצגת תוצאות
- בדיקות על נתונים אמיתיים ותיקון שגיאות
- תיעוד ותמיכה בצוות
תהליך עבודה
- ניתוח — הבנת המשימה, איסוף מערך נתונים, בחירת מדדים
- עיצוב — קביעת ארכיטקטורה, צינור עיבוד
- יישום — כיוונון עדין, המרה, אינטגרציה
- בדיקות — בדיקות יחידה, בדיקות ממשק משתמש, בדיקות A/B על ביטחון
- פריסה — שחרור ל-App Store / Google Play, ניטור
לוחות זמנים ומחירים
אינטגרציה של מודל מוכן לתוך אפליקציה קיימת: 3–5 ימים. כיוונון עדין של מודל מותאם אישית בתוספת אינטגרציה: 1–2 שבועות. המחיר נקבע באופן אישי—אנו מעריכים את הפרויקט שלכם לאחר ייעוץ ראשוני. אנו מבטיחים איכות ועמידה בלוחות זמנים, מגובה בניסיון של מעל 5 שנים בפיתוח מובייל.
רוצים ליישם סיווג אובייקטים? צרו קשר לייעוץ חינמי והערכה ראשונית. הזמינו אינטגרציית סיווג לתוך האפליקציה שלכם היום.







