AI-розпізнавання марок і моделей авто в мобільному додатку

Розпізнавання марки та моделі автомобіля за фото — завдання, що ускладнюється в реальних умовах: ракурси, часткова видимість і нічна зйомка. Ми розробляємо AI-класифікатори, які справляються з цими викликами, і реалізуємо проєкт під ключ — від навчання моделі до впровадження у ваш мобільний застосунок. Наша команда експертів забезпечує надійне рішення з подальшою підтримкою.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
AI-розпізнавання марок і моделей авто в мобільному додатку
Складний
~1-2 тижні
Часті запитання

Реалізація AI-розпізнавання автомобілів (марка, модель) у мобільному додатку

Розпізнавання марки та моделі автомобіля за фотографією — задача з добре вивченим рішенням. Моделі, навчені на Stanford Cars Dataset (196 класів) або CompCars, дають точність 90%+ на чистих бічних знімках. Основна складність у продакшн — ракурси, часткова видимість (тільки перед або тільки задня частина), нічні умови та автомобілі з нішевих ринків.

Наша команда має 5+ років досвіду в розробці мобільних AI-рішень і реалізувала понад 50 проєктів з Computer Vision для automotive. Ми стикалися з цими проблемами на реальних проєктах для страхових і дилерських додатків. У цій статті розберемо, як побудувати надійну систему розпізнавання авто, яка працює в складних умовах, і порівняємо варіанти реалізації — від готових API до кастомних CoreML/TFLite моделей. Опишемо конкретні технічні рішення, включаючи багаторакурсну зйомку та гібридний VIN+Visual підхід. Якщо вам потрібно оцінити подібний проєкт — зв'яжіться з нами для консультації.

Готові API та їх обмеження

Сервіс Кількість моделей Особливості
CarAPI / CarQuery 10 000+ Гарний для класифікації, слабше на старих/рідкісних авто
AutoVIN API Широка база VIN-декодування в зв'язці з фото
Imagga Кастомні теги Вимагає донавчання під automotive
Google Cloud AutoML Vision Кастомне Потрібна своя розмітка

Для більшості проєктів: кастомна CoreML/TFLite модель на базі EfficientNetV2, донавчена на об'єднаному датасеті (Stanford Cars + VMMRdb). Розмір моделі — 25–40 МБ, точність Top-1 на популярних моделях — 88–93%. Кастомна модель дає точність на 10-15% вищу, ніж готові API, особливо на рідкісних автомобілях. Час інференсу на iPhone 13 — менше 50 мс.

Як вибрати підхід для розпізнавання авто?

Вибір між готовим API та кастомною моделлю залежить від ваших вимог. Якщо потрібно розпізнавати лише популярні моделі (перші 100-200) і не важлива висока точність — підійде CarAPI. Для страхових або дилерських додатків, де важлива кожна деталь, кастомна модель і багаторакурсна зйомка — єдиний надійний варіант. Ми рекомендуємо починати з прототипу на API, щоб оцінити точність на реальних даних, а потім переходити на кастомне рішення.

Реалізація на iOS з CoreML

class CarRecognitionService {
    private lazy var model: VNCoreMLModel = {
        let config = MLModelConfiguration()
        config.computeUnits = .cpuAndNeuralEngine
        let mlModel = try! CarClassifierV3(configuration: config).model
        return try! VNCoreMLModel(for: mlModel)
    }()

    func recognize(image: UIImage) async throws -> [CarPrediction] {
        guard let cgImage = image.cgImage else {
            throw CarError.invalidImage
        }

        return try await withCheckedThrowingContinuation { continuation in
            let request = VNCoreMLRequest(model: model) { request, error in
                if let error = error {
                    continuation.resume(throwing: error)
                    return
                }

                let results = (request.results as? [VNClassificationObservation]) ?? []
                let predictions = results
                    .filter { $0.confidence > 0.05 }
                    .prefix(5)
                    .map { CarPrediction(
                        makeModel: $0.identifier, // "Toyota Camry"
                        confidence: $0.confidence
                    )}
                continuation.resume(returning: Array(predictions))
            }

            // Нормалізація орієнтації зображення критична — інакше точність падає
            request.imageCropAndScaleOption = .centerCrop
            let handler = VNImageRequestHandler(cgImage: cgImage, orientation: image.cgImageOrientation)
            try? handler.perform([request])
        }
    }
}

Параметр imageCropAndScaleOption = .centerCrop — не очевидна деталь. За замовчуванням CoreML масштабує зображення інакше, ніж очікувала модель при навчанні, що дає 5–8% втрати точності.

Чому багаторакурсна зйомка підвищує точність?

Для високоточних задач (страхові додатки, автодилери) одного знімка недостатньо. Запитуємо три ракурси:

enum CarPhotoAngle: CaseIterable {
    case frontThreeQuarter // 3/4 спереду — оптимальний для марки/моделі
    case rear // для задньої частини (дод. верифікація)
    case side // бічний — для кузова та покоління

    var instruction: String {
        switch self {
        case .frontThreeQuarter:
            return "Сфотографуйте автомобіль спереду-збоку (45°)"
        case .rear:
            return "Сфотографуйте ззаду"
        case .side:
            return "Сфотографуйте строго збоку"
        }
    }
}

// Агрегація результатів за трьома знімками — weighted voting
func aggregatePredictions(_ predictions: [[CarPrediction]]) -> CarPrediction {
    let weights: [Double] = [0.5, 0.3, 0.2] // frontThreeQuarter важливіше
    // ... weighted voting по makeModel
}

Визначення року випуску та покоління

Рік випуску візуально — складніше марки/моделі: рестайлінги змінюють зовнішність незначно. Два підходи:

  • Класифікатор поколінь (окрема голова в multi-task моделі)
  • Hybrid: VIN через OCR (якщо номер видно) + візуальна класифікація покоління

VIN-підхід точніше: якщо OCR зчитав VIN з номерного знаку або рамки, всі дані (марка, модель, рік, комплектація) декодуються без AI через NHTSA API або платні VIN-декодери. Час розпізнавання VIN з OCR — близько 200 мс.

Етапи робіт під ключ

  1. Аналіз вимог і збір датасету (якщо потрібні рідкісні моделі)
  2. Навчання та валідація моделі (EfficientNetV2, CoreML/TFLite)
  3. Інтеграція модуля розпізнавання з UI додатку
  4. Тестування на реальних знімках в різних умовах
  5. Підтримка після релізу (донавчання, оновлення API)

Що входить в результат

Deliverable Опис
Навчена модель CoreML/TFLite, розмір 25–40 МБ
Вихідний код Swift/Kotlin з коментарями
Документація API, архітектура, інструкція з донавчання
Підтримка 1 місяць після здачі, виправлення багів
Гарантія точності 90%+ на популярних моделях

Наш досвід дозволяє знизити витрати на розмітку на 30% за рахунок transfer learning і відбору ключових знімків.

Орієнтири за термінами

Інтеграція готової CoreML моделі з UI відображення результатів — 3–5 днів. Повна система з багаторакурсним захопленням, гібридним VIN+Visual підходом, базою характеристик автомобілів та iOS + Android — 1–2 тижні.

Для оцінки вашого проєкту заповніть форму або напишіть нам — ми відповімо протягом дня. Отримайте консультацію.

Наші компетенції:

Останні роботи

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1010
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    903
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1107
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714