Furniture Search by Photo: AI Recognition in Mobile Apps

Furniture Search by Photo: AI Recognition in Mobile Apps A client wants users to snap a sofa and get similar models with prices. But furniture isn't clothing: visually identical chairs can differ in style and dimensions. A mistake in image classification leads to false recommendations. We solve t

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
Furniture Search by Photo: AI Recognition in Mobile Apps
Complex
~1-2 weeks

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    896
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    783
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    598

Furniture Search by Photo: AI Recognition in Mobile Apps

A client wants users to snap a sofa and get similar models with prices. But furniture isn't clothing: visually identical chairs can differ in style and dimensions. A mistake in image classification leads to false recommendations. We solve this with a combination of transfer learning on convolutional networks and vector search. Our experience shows that a properly tuned model saves up to 40% of catalog manual processing time, and catalog maintenance costs drop by 25% through automation.

Why Furniture Is Harder Than Clothing

Furniture has rigid geometry and recognizable shapes — that simplifies classification. But searching for "similar for less money" requires not just visual match but also understanding style (Scandinavian minimalism, loft, classic) and scale. A sofa photo without context doesn't reveal whether it's a three-seater or a two-seater. We address this with additional furniture style classifiers and attribute filtering.

Source: recommendations from open furniture image datasets (e.g., Furniture-180).

Problems We Solve

  1. Categorization: Most off-the-shelf models (Google Cloud Vision, AWS Rekognition) are trained on ImageNet, which includes plenty of furniture. But accuracy drops for rare forms. We fine-tune EfficientNet or MobileNetV3 on the store's catalog: 50,000 images (200–300 per category) yield reliable classification of main categories: sofa, armchair, table, chair, wardrobe, bed, nightstand.
  2. Style detection: Category is just the first step. For similarity search, style matters. We use CLIP, which understands text descriptions: "Scandinavian minimalist", "loft", "classic". CLIP compares the image embedding with text style embeddings and returns the most likely.
  3. Filtered search: The architecture is the same as for clothing: embedding → vector search. But for furniture, filtering by material (wood, metal, fabric), color, and size group is crucial. Size class without AR is approximated by aspect ratio and typical category proportions.

Comparison of Classification Approaches

Approach Accuracy Training Time Dataset Size
Ready API (Google Cloud Vision) 75-85% 0 Not required
Transfer Learning (MobileNetV3) 92-96% 2-4 days 500–1000 per category
Training from scratch (ResNet) 96%+ 2-4 weeks 10,000+ per category

Transfer learning is the optimal choice for most retailers: 92% accuracy with minimal time investment. It outperforms ready APIs by 15% on average in our tests. And it requires 2-3 times less data than training from scratch at comparable accuracy. We use MobileNetV3 or EfficientNet-Lite — they run directly on the device.

How to Determine Furniture Style?

Method Style Accuracy Labeling Required
Visual features only (CNN) 70-80% 500+ images per style
CLIP (text+image) 85-95% Text descriptions of styles
Hybrid (CLIP + custom classifier) 90-97% 200 images per style

CLIP allows quick adaptation to a new style without retraining — just add a text description. More about CLIP in the official repository.

How We Do It: Stack and Examples

For Android we use TFLite with XNNPACK optimization. Example classifier:

// Android: TFLite furniture classifier 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 } } } 

For iOS — Core ML. CLIP enables style detection via text prompts:

// iOS: CLIP-based style detection via Core ML // CLIP model converted to .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 compares image embedding with text embeddings of styles 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 } } 

How Does Similar Item Search Work in the Catalog?

Product embeddings are stored in a vector database (e.g., FAISS or Pinecone). Search involves several steps:

  1. Extract embedding: the user's image goes through the same model as the catalog.
  2. Vector search: cosine distance to all catalog embeddings.
  3. Apply filters: filter by category, style, material, color, size, and price.
  4. Post-processing: sort by similarity and return top-10 results.
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 } 

Integration Process

Implementing recognition and similar-item search goes through several stages:

More details on stages
  1. Catalog analysis: estimate image volume, categories, styles.
  2. Data preparation: label 200–500 images per category/style (if fine-tuning is needed).
  3. Model training: transfer learning on TensorFlow/Keras or Create ML.
  4. App integration: connect TFLite/Core ML, set up vector storage.
  5. Testing: A/B test recognition accuracy and search speed.
  6. Deployment: release via App Store/Google Play, monitor.

A minimum viable product (MVP) can be launched in 1 week using a ready-made recognition API and cloud vector storage. A full solution with a custom model, CLIP, and AR measures takes 1–2 months. For example, for a client with 10,000 catalog items, we fine-tuned MobileNetV3 on 500 images per category. Classification accuracy rose from 72% to 94%.

Scope of Work

  • MVP: integration with a ready API (Google Cloud Vision + vector search) — from 1 week.
  • Full solution: fine-tuned TFLite/CoreML model, CLIP style classifier, vector store with filters, AR dimensions (LiDAR) — 1–2 months.
  • Model and API documentation.
  • Client team training.
  • Post-release support for 2 weeks.

Our team has 7+ years of experience in mobile development and machine learning. We have completed 30+ projects in image recognition. We guarantee quality: the model will work offline without delays. If you want to implement a similar feature, contact us — we'll find the optimal solution. Get a free consultation on integration — we'll assess your project at no cost.