Object Classification in Mobile Apps: Model Selection and Integration

Object Classification in Mobile Apps We integrate object classification into mobile apps turnkey. Unlike detection, the model outputs a single probability vector per class. It seems simpler, but this is where developers most often make mistakes: choosing the wrong confidence threshold, ignoring p

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
Object Classification in Mobile Apps: Model Selection and Integration
Medium
~1-2 weeks

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    782
  • 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
    1002
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    597

Object Classification in Mobile Apps

We integrate object classification into mobile apps turnkey. Unlike detection, the model outputs a single probability vector per class. It seems simpler, but this is where developers most often make mistakes: choosing the wrong confidence threshold, ignoring post-processing, and forgetting about UX. In this article, we break down how to avoid these pitfalls and make classification reliable and user-friendly. Experience with Core ML, ML Kit, EfficientNet—over 5 years in mobile development.

How to Choose a Classification Model?

For top-1000 classes (products, animals, household items), MobileNetV3-Large or EfficientNetB0/B1 work well. They run out-of-the-box via ML Kit Image Labeling or Core ML with models from the Apple Model Gallery. For a narrow domain (specific product types, manufacturing defects), a fine-tuned model is required.

Comparison of popular options:

Model Size Accuracy (top-1) Applicability
MobileNetV3-Large ~5 MB 75.6% General, fast
EfficientNetB0 ~8 MB 77.1% Balance of speed and accuracy
Custom (fine-tuned) 5-10 MB 80-90% (dataset dependent) Narrow domain
Solution type When to choose Example
Pre-built model Top-1000 classes, quick start ML Kit Image Labeling
Fine-tuning 10–50 classes, 200–500 examples per class Custom EfficientNet
Few-shot learning Fewer than 50 examples per class Prototypical Networks

Fine-tuning on a custom dataset: take a pre-trained backbone (MobileNetV2, EfficientNetB0), freeze the lower layers, train only the top layers on your data. For 10–50 classes, 200–500 examples per class with proper augmentation suffice. Fewer—requires a few-shot approach (Prototypical Networks). After training, convert to .mlmodel (iOS) or .tflite (Android), adding metadata with class names and normalization parameters. EfficientNet is a good balance of speed and accuracy.

How to Choose the Confidence Threshold?

The most frequent UX mistake is showing classification results without considering confidence. The model always returns a probability distribution; argmax always picks a 'winner'—even when the model is unsure. If the top-1 class scores 0.23 with the next at 0.21, that's not classification—it's randomness.

The right approach: set a threshold (typically 0.5–0.7 depending on the task). If top-1 falls below the threshold, show 'unable to determine' or ask for a retake. For critical tasks (medical, legal documents)—also check the entropy of the distribution. According to Core ML documentation, the threshold is set via the confidenceThreshold parameter in VNCoreMLRequest.

On iOS via VNCoreMLRequest:

request.imageCropAndScaleOption = .centerCrop let observations = results as? [VNClassificationObservation] let confident = observations?.filter { $0.confidence > 0.65 } 

On Android via ML Kit ImageLabeling:

val options = ImageLabelerOptions.Builder() .setConfidenceThreshold(0.65f) .build() 

Why Is Post-Processing Important?

Showing top-3 classes with percentages is appropriate for educational and consumer apps. For business apps (automation, warehouse), you need one confident result or nothing. Post-processing includes not only the threshold but also checking the gap between top-1 and top-2: if the difference is small, ask for user confirmation.

Case study: an inventory app for a warehouse, classifying 87 SKUs via a custom EfficientNetB0 model. The initial threshold of 0.5 gave 12% false positives. After analyzing the confusion matrix, we found that 80% of errors occurred between SKUs with similar packaging. We added a second level: if top-2 and top-3 together exceed 0.4, the operator is prompted to confirm. False positives dropped to 2.1%.

UI for results: don't overwhelm users with numbers. A progress bar or color indicator (green/yellow/red) is perceived better than '73.4%'. Animating the result appearance via withAnimation (SwiftUI) or ObjectAnimator (Android) reduces the feeling of a 'cold' model response.

What Is Included

When you order object classification implementation, you get:

  • Task analysis and model architecture selection
  • Fine-tuning on your dataset (if needed)
  • Conversion to .mlmodel (iOS) / .tflite (Android)
  • Integration into the app with data flow setup
  • Confidence threshold tuning and post-processing
  • UI development for result display
  • Testing on real data and error correction
  • Documentation and team support

Work Process

  1. Analysis — understand the task, collect dataset, choose metrics
  2. Design — determine architecture, processing pipeline
  3. Implementation — fine-tuning, conversion, integration
  4. Testing — unit tests, UI tests, A/B tests on confidence
  5. Deployment — release to App Store / Google Play, monitoring

Timelines and Pricing

Integration of a ready-made model into an existing app: 3–5 days. Fine-tuning a custom model plus integration: 1–2 weeks. Pricing is determined individually—we evaluate your project after an initial consultation. We guarantee quality and deadlines, backed by over 5 years of mobile development experience.

Want to implement object classification? Contact us for a free consultation and preliminary estimate. Order classification integration into your app today.