חיפוש רהיטים לפי תמונה: זיהוי AI באפליקציות מובייל
לקוח רוצה שמשתמשים יצלמו ספה ויקבלו דגמים דומים עם מחירים. אבל רהיטים אינם כמו בגדים: כיסאות שנראים זהים יכולים להיות שונים בסגנון ובמידות. טעות בסיווג תמונה מובילה להמלצות שגויות. אנחנו פותרים זאת באמצעות שילוב של למידת העברה על רשתות קונבולוציה וחיפוש וקטורי. הניסיון שלנו מראה שמודל מכוון כראוי חוסך עד 40% מזמן עיבוד הקטלוג הידני, ועלויות תחזוקת הקטלוג יורדות ב-25% באמצעות אוטומציה.
למה רהיטים קשים יותר מבגדים
לרהיטים יש גאומטריה קשיחה וצורות מזוהות — זה מפשט את הסיווג. אבל חיפוש "דומה במחיר נמוך יותר" דורש לא רק התאמה ויזואלית אלא גם הבנה של סגנון (מינימליזם סקנדינבי, לופט, קלאסי) וקנה מידה. תמונת ספה ללא הקשר לא חושפת אם היא לשלושה מושבים או לשני מושבים. אנחנו מטפלים בכך עם מסווגי סגנון רהיטים נוספים וסינון לפי מאפיינים.
מקור: המלצות ממערכי נתונים פתוחים של תמונות רהיטים (למשל, Furniture-180).
בעיות שאנחנו פותרים
- סיווג: רוב המודלים המוכנים (Google Cloud Vision, AWS Rekognition) מאומנים על ImageNet, הכולל שפע של רהיטים. אבל הדיוק יורד עבור צורות נדירות. אנחנו מבצעים כוונון עדין של EfficientNet או MobileNetV3 על הקטלוג של החנות: 50,000 תמונות (200–300 לכל קטגוריה) מניבות סיווג אמין של קטגוריות ראשיות: ספה, כורסה, שולחן, כיסא, ארון, מיטה, שידת לילה.
- זיהוי סגנון: קטגוריה היא רק הצעד הראשון. לחיפוש דמיון, הסגנון חשוב. אנחנו משתמשים ב-CLIP, שמבין תיאורי טקסט: "מינימליזם סקנדינבי", "לופט", "קלאסי". CLIP משווה את ה-embedding של התמונה עם embeddings של סגנונות טקסט ומחזיר את הסביר ביותר.
- חיפוש מסונן: הארכיטקטורה זהה לזו של בגדים: embedding → חיפוש וקטורי. אבל לרהיטים, סינון לפי חומר (עץ, מתכת, בד), צבע וקבוצת גודל הוא קריטי. מחלקת גודל ללא AR מוערכת לפי יחס גובה-רוחב ופרופורציות אופייניות לקטגוריה.
השוואת גישות סיווג
| גישה | דיוק | זמן אימון | גודל מערך נתונים |
|---|---|---|---|
| API מוכן (Google Cloud Vision) | 75-85% | 0 | לא נדרש |
| למידת העברה (MobileNetV3) | 92-96% | 2-4 ימים | 500–1000 לכל קטגוריה |
| אימון מאפס (ResNet) | 96%+ | 2-4 שבועות | 10,000+ לכל קטגוריה |
למידת העברה היא הבחירה האופטימלית עבור רוב הקמעונאים: דיוק של 92% עם השקעת זמן מינימלית. היא עולה על APIs מוכנים ב-15% בממוצע בבדיקות שלנו. והיא דורשת פי 2-3 פחות נתונים מאשר אימון מאפס בדיוק דומה. אנחנו משתמשים ב-MobileNetV3 או EfficientNet-Lite — הם רצים ישירות על המכשיר.
איך לקבוע סגנון רהיט?
| שיטה | דיוק סגנון | נדרשת תיוג |
|---|---|---|
| מאפיינים ויזואליים בלבד (CNN) | 70-80% | 500+ תמונות לכל סגנון |
| CLIP (טקסט+תמונה) | 85-95% | תיאורי טקסט של סגנונות |
| היברידי (CLIP + מסווג מותאם) | 90-97% | 200 תמונות לכל סגנון |
CLIP מאפשר התאמה מהירה לסגנון חדש ללא אימון מחדש —只需 הוספת תיאור טקסט. עוד על CLIP במאגר הרשמי.
איך אנחנו עושים את זה: מחסנית ודוגמאות
לאנדרואיד אנחנו משתמשים ב-TFLite עם אופטימיזציית XNNPACK. דוגמת מסווג:
// Android: TFLite классификация мебели
class FurnitureClassifier(context: Context) {
private val interpreter: Interpreter by lazy {
val model = FileUtil.loadMappedFile(context, "furniture_classifier_v2.tflite")
Interpreter(model, Interpreter.Options().apply {
numThreads = 4
useXNNPACK = true
})
}
fun classify(bitmap: Bitmap): List<FurnitureClassification> {
val resized = Bitmap.createScaledBitmap(bitmap, 224, 224, true)
val input = TensorImage.fromBitmap(resized)
val output = TensorBuffer.createFixedSize(intArrayOf(1, NUM_CLASSES), DataType.FLOAT32)
interpreter.run(input.buffer, output.buffer)
return output.floatArray
.mapIndexed { index, score -> FurnitureClassification(LABELS[index], score) }
.filter { it.score > 0.1f }
.sortedByDescending { it.score }
}
}ל-iOS — Core ML. CLIP מאפשר זיהוי סגנון באמצעות הנחיות טקסט:
// iOS: CLIP-based style detection через Core ML
// CLIP модель конвертирована в .mlpackage
func detectStyle(_ image: UIImage) async throws -> [StyleScore] {
let styleDescriptions = [
"scandinavian minimalist furniture",
"industrial loft style furniture",
"classic traditional furniture",
"mid-century modern furniture",
"boho eclectic furniture"
]
// CLIP сравнивает image embedding с text embeddings стилей
let imageEmbedding = try await clipEncoder.encodeImage(image)
return styleDescriptions.enumerated().map { i, desc in
let textEmbedding = clipEncoder.encodeText(desc)
let similarity = cosineSimilarity(imageEmbedding, textEmbedding)
return StyleScore(style: desc, score: similarity)
}.sorted { $0.score > $1.score }
} איך עובד חיפוש פריטים דומים בקטלוג?
ה-embeddings של המוצרים מאוחסנים במסד נתונים וקטורי (למשל, FAISS או Pinecone). החיפוש כולל מספר שלבים:
- חילוץ embedding: התמונה של המשתמש עוברת דרך אותו מודל כמו הקטלוג.
- חיפוש וקטורי: מרחק קוסינוס לכל ה-embeddings בקטלוג.
- החלת מסננים: סינון לפי קטגוריה, סגנון, חומר, צבע, גודל ומחיר.
- עיבוד לאחר: מיון לפי דמיון והחזרת 10 תוצאות ראשונות.
struct FurnitureSearchFilters {
let category: FurnitureCategory
let style: StyleTag?
let colorFamily: ColorFamily? // warm, cool, neutral
let material: MaterialType? // wood, metal, upholstered
let maxDimensionClass: SizeClass? // compact, standard, large
let priceRange: ClosedRange<Int>?
let inStockOnly: Bool
} תהליך אינטגרציה
יישום זיהוי וחיפוש פריטים דומים עובר מספר שלבים:
פרטים נוספים על השלבים
- ניתוח קטלוג: הערכת נפח תמונות, קטגוריות, סגנונות.
- הכנת נתונים: תיוג 200–500 תמונות לכל קטגוריה/סגנון (אם נדרש כוונון עדין).
- אימון מודל: למידת העברה על TensorFlow/Keras או Create ML.
- אינטגרציה לאפליקציה: חיבור TFLite/Core ML, הגדרת אחסון וקטורי.
- בדיקות: בדיקת A/B לדיוק זיהוי ומהירות חיפוש.
- פריסה: שחרור דרך App Store/Google Play, ניטור.
מוצר מינימלי בר-קיימא (MVP) ניתן להשיק תוך שבוע באמצעות API זיהוי מוכן ואחסון וקטורי בענן. פתרון מלא עם מודל מותאם, CLIP ומדידות AR אורך 1–2 חודשים. לדוגמה, עבור לקוח עם 10,000 פריטים בקטלוג, ביצענו כוונון עדין של MobileNetV3 על 500 תמונות לכל קטגוריה. דיוק הסיווג עלה מ-72% ל-94%.
היקף העבודה
- MVP: אינטגרציה עם API מוכן (Google Cloud Vision + חיפוש וקטורי) — החל משבוע.
- פתרון מלא: מודל TFLite/CoreML מכוונן, מסווג סגנון CLIP, אחסון וקטורי עם מסננים, מידות AR (LiDAR) — 1–2 חודשים.
- תיעוד מודל ו-API.
- הכשרת צוות הלקוח.
- תמיכה לאחר שחרור למשך שבועיים.
לצוות שלנו ניסיון של 7+ שנים בפיתוח מובייל ולמידת מכונה. השלמנו 30+ פרויקטים בזיהוי תמונות. אנחנו מבטיחים איכות: המודל יעבוד במצב לא מקוון ללא עיכובים. אם אתם רוצים ליישם פיצ'ר דומה, צרו קשר — נמצא את הפתרון האופטימלי. קבלו ייעוץ על אינטגרציה — נעריך את הפרויקט שלכם.







