Mobile App Object Classification Implementation

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
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 1 servicesAll 1735 services
Mobile App Object Classification Implementation
Medium
~1-2 weeks
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Object Classification Implementation in Mobile Applications

Object classification differs from detection in one key way: the model answers "what is this?" not "where is it?" One output: a probability vector across classes. Seems simpler than detection, but here is where confidence threshold and UX problems most often arise.

Model Selection for the Task

For top-1000 classes (products, animals, household objects), use MobileNetV3, EfficientNetB0/B1. Work out-of-the-box via ML Kit Image Labeling or Core ML with models from Apple Model Gallery. For narrow domain (specific product type, manufacturing defects), you need a fine-tuned model.

Fine-tuning on custom dataset: take a pre-trained backbone (MobileNetV2, EfficientNetB0), freeze lower layers, train only upper layers on your data. For 10–50 classes, 200–500 examples per class with proper augmentation suffice. Fewer requires few-shot approach (Prototypical Networks).

After training: convert to .mlmodel (iOS) or .tflite (Android), add metadata with class names and normalization parameters.

Confidence Thresholds: Where Products Get Lost

The most common UX mistake: showing classification results without considering confidence. The model always returns a probability distribution; argmax always yields a "winner"—even when the model doesn't believe it. If top-1 class has score 0.23 with next at 0.21, that's not classification, it's random.

Correct approach: set a threshold (typically 0.5–0.7 depending on task). If top-1 below threshold, show "couldn't determine" or request re-shot. For critical tasks (medicine, legal documents), additionally check distribution entropy.

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()

Top-N and Result Display

Showing top-3 classes with percentages is right for educational and consumer apps. For business apps (automation, warehouse), one confident result or nothing.

Case: warehouse inventory app classifying 87 SKUs via custom EfficientNetB0. Initial threshold 0.5 gave 12% false positives. Analyzing confusion matrix revealed: 80% errors between SKUs with similar packaging. Added second level: if top-2 and top-3 combined exceed 0.4, ask operator to confirm. False positives dropped to 2.1%.

UI result: don't overload users with numbers. Progress bar or color coding (green/yellow/red) reads better than "73.4%". Result appearance animation via withAnimation (SwiftUI) or ObjectAnimator (Android) reduces the feeling of a "cold" model response.

Timeline and Process

Integrating a ready model into existing app: 3–5 days. Fine-tuning custom model + integration: 1–2 weeks. Cost calculated individually.