Часть 2: техническая реализация и результаты

В первой части рассказывалось о проблеме системного обмана в индийских автобусах и стратегическом подходе к её решению. Теперь — о технической реализации, архитектуре и первых результатах.

Ключевые цифры проекта:

  • Пилот: 12 автобусов (сбор первичных данных)
  • Следующий этап: 56 автобусов (весь флот компании)
  • Гипотетическое масштабирование: 300 автобусов — оценка потенциальных потерь (650 млн₽/год)

Командировка: сбор данных и подготовка

Перед запуском я посетил Индию, чтобы лично оценить условия на месте. Цели поездки:

  • Осмотреть автобусы на заводе
  • Снять видео с разных ракурсов и при разном освещении
  • Определить оптимальное расположение камер
  • Согласовать технические детали с поставщиком данных

Результаты пятидневной командировки (бюджет ~250 000₽):

  • Собрано около часа 4K-видео с пассажирами при входе и выходе
  • Создан датасет IndiaBus-v1.0
  • Согласован формат передачи данных через API (JSON)
  • Подтверждена возможность выгрузки данных по WiFi/GSM
  • Составлен протокол технических решений

Видео с разными углами позволило:

  1. Выявить возможные ошибки детекции (перекрытия, отражения, конструктивные особенности автобусов)
  2. Определить оптимальный угол наклона камер
  3. Дать чёткие инструкции команде в России без необходимости повторных выездов

Архитектура системы: трёхуровневый подход

Почему собственная CNN, а не готовые решения

Было принято ключевое решение — разработать собственную архитектуру Adaptive Face Extractor вместо использования коммерческих моделей (FaceNet, ArcFace).

Готовые решения оказались непригодны по нескольким причинам:

  1. Низкая точность на индийских данных — модели обучались на западных датасетах и плохо работают с сари, тюрбанами и специфическим освещением.
  2. Высокие вычислительные требования — 98 МБ против 4.7 МБ, 280 мс против 42 мс на CPU. Это критично при масштабировании на 56+ автобусов.
  3. Стоимость лицензий — при 180 000 пассажирах в день затраты достигли бы миллионов рублей в месяц.
  4. Фиксированный размер входа — требует ресайза, что ведёт к потере деталей. Наша модель работает с переменным размером (80×80 – 180×160).
  5. Контроль над данными — по закону DPDPA нельзя отправлять биометрию на внешние API.

Архитектура Adaptive Face Extractor:

  • Вход: RGB-изображение переменного размера H×W×3
  • Начальный блок: 2× Conv2D(64) + BatchNorm + ReLU
  • Мультимасштабный блок: 4 параллельные ветви (Conv2D, Dilation=2, Dilation=3, Pooling)
  • Пространственная пирамида пулинга: 4 уровня (1×1, 2×2, 4×4, 8×8)
  • Механизм внимания: Squeeze-and-Excitation (SE-блок)
  • Финальные слои: 2× Conv2D(512) + GlobalAveragePooling + Dense(1024) + Dropout(0.5)
  • Выход: L2-нормализованный эмбеддинг 512D или 1024D

Формула эмбеддинга: e = AdaptiveFaceExtractor(image) ∈ R^512, где ∥e∥₂ = 1.

Сравнение: similarity(e1, e2) = cosine(e1, e2) > threshold → это один и тот же пассажир.

Переменный размер входа критичен, потому что:

  • Рост пассажиров — от 150 до 190 см
  • Расстояние до камеры — от 0.5 до 2 м (масштаб меняется в 4 раза)
  • Ресайз ведёт к потере деталей или шуму
  • Наша модель работает с нативным размером без потерь

Дополнительные параметры:

  • Датасет: IndiaBus-v1.0 (150+ идентичностей)
  • Функция потерь: ArcFace Loss
  • Аугментация: RandomRotation(±10%), RandomZoom(±10%), RandomBrightness(±20%)
  • Фреймворк: TensorFlow 2.x + Keras

Синхронизация GPS и временных меток

Видео с камер привязывается к координатам автобуса для точного расчёта маршрута.

  • GPS-приёмник: гибридный чип NavIC L1 + GPS L1/L5 (точность ≤10 м)
  • Синхронизация времени: NTP-сервер в Мумбаи (погрешность <100 мс)
  • Частота записи координат: каждые 15 секунд
  • Каждый кадр маркируется GPS-координатами и временной меткой

Алгоритм сравнения эмбеддингов

Для определения, что входящий и выходящий пассажиры — один человек, используется косинусное сходство с порогом.

Экономическое обоснование выбора порога:

  • Высокий порог — меньше ложных совпадений, но больше пропусков
  • Низкий порог — больше ложных совпадений, но меньше пропусков
  • Сейчас ведётся настройка оптимального порога для баланса точности и полноты

Соблюдение DPDPA 2023

Индийский закон Digital Personal Data Protection Act (DPDPA) 2023 строже предыдущих норм, хотя уступает GDPR, CCPA и PIPL по охвату.

Ключевые положения:

  • Максимальный штраф — 250 крор рупий (~2.7 млрд₽)
  • Штрафы — за серьёзные нарушения: утечки, отсутствие мер безопасности, игнорирование предписаний
  • Запрет на обработку данных — возможен, но не автоматичен; вводится Data Protection Board при тяжких нарушениях

Моя позиция: соответствие закону — не ограничение, а конкурентное преимущество.

Как обеспечили соответствие

Ключевое изменение: изображения лиц удаляются после обработки, храним только эмбеддинги.

7 обязательных требований DPDPA (OTR):

  1. Данные хранятся только на серверах в Индии (Мумбаи)
  2. Изображения лиц — 90 дней для отладки, затем автоматическое удаление
  3. Эмбеддинги могут храниться дольше (не позволяют восстановить изображение)
  4. Информационные таблички в салоне на маратхи, хинди и английском (информированное согласие)
  5. Шифрование: TLS 1.3 + AES-256-GCM
  6. Ежеквартальный аудит третьей стороной
  7. «Право на забвение» — удаление по запросу за 72 часа

Хранение видео:

  • Потолочные камеры: хранятся по закону
  • Камеры для ИИ: циклическая перезапись после выгрузки данных

Юридическое обоснование:

  • DPDPA Section 5: обработка допустима для исполнения договора (перевозка)
  • Section 8: данные удаляются после достижения цели (90 дней)
  • Разъяснение MeitY (2024): эмбеддинги без возможности восстановления изображения не считаются биометрией

Результаты внедрения

Метрики эффективности

После внедрения системы:

  • Точность подсчёта: повышена до 96.3%
  • Рейсов с расхождениями >10%: выявлено 22%
  • Время проверки отчёта: с 14 часов до 0 (автоматизация)
  • Прибыльность флота: растёт за счёт выявления недостач
  • Конфликты с пассажирами: снижаются благодаря прозрачности

Финансовый эффект (на 12 автобусах)

Дополнительная выручка = Выявленные расхождения × Количество рейсов

При 22% рейсов с расхождениями >10% и средней выручке 21 000₽/рейс:

  • Дополнительная выручка: 665 280₽/месяц
  • Годовой эффект: 8 млн₽

Текущее состояние

  • Пилот: 12 автобусов, маршрут ГородА–ГородБ
  • Система работает в реальном времени, отчёты генерируются автоматически
  • Персонал обучен: контролёры получают уведомления о расхождениях
  • Изображения удаляются через 90 дней, эмбеддинги могут храниться дольше

Почему 96.3% — недостаточно для масштабирования

Ошибка 3.7% при масштабировании приводит к значительным потерям:

  • 56 автобусов: 1 243 неверно посчитанных пассажира/день → 5.4 млн₽/год
  • 300 автобусов: 6 660 человек/день → 29.2 млн₽/год

Реальная ошибка выше из-за:

  • Перекрытий в час пик
  • Плохого освещения вечером
  • Традиционной одежды (сари, тюрбаны)

Реалистичные оценки потерь:

  • Для 56 автобусов: 12–20 млн₽/год
  • Для 300 автобусов: 70–120 млн₽/год

Решение: переход к специализированным камерам

Техническое улучшение — установка камер на уровне лица с углом обзора 120°:

  • Точность до 99.5%+
  • Соответствие DPDPA сохраняется

Экономическое обоснование (для 56 автобусов):

  • Стоимость установки: 23.7 млн₽
  • Экономия: 12–20 млн₽/год
  • ROI: 51–84% годовых
  • Срок окупаемости: 14–23 месяца

Главное — защита от системных рисков: штрафов, репутационных потерь, мошенничества.

Статус: ведутся переговоры по интеграции с компанией, предоставляющей доступ к системам электробусов, для расширения покрытия и снижения затрат.

Уроки для руководителей ИИ-проектов

Ограничения — драйвер инноваций

Необходимость работать с переменным размером лиц привела к созданию Adaptive Face Extractor с мультимасштабными свёртками и механизмом внимания.

Вывод: если бы камеры были идеальными с самого начала, мы бы не создали это решение. Теперь оно — наше конкурентное преимущество.

ИИ должен решать бизнес-проблему, а не техническую

Цель была не «распознать лицо с 99.99% точностью», а «посчитать деньги и выявить обман».

Формула успеха: Успех_ИИ = Бизнес_цель × Техническая_реализуемость / Сложность_внедрения. Мы максимизировали первую переменную.

Работа из России возможна — при стратегии

Я не переезжал в Индию. Но:

  • Сделал одну командировку для сбора данных
  • Договорился с локальными партнёрами
  • Обеспечил соответствие законодательству
  • Построил автономную систему

Ключевой принцип: «Управляй стратегически, делегируй операционно».

ИИ нужен не только для оптимизации, но и для честности

Мы не хотели просто ускорить подсчёт — мы хотели узнать правду. ИИ стал инструментом прозрачности, который показал:

  • 22% рейсов имели критические расхождения
  • Системный обман — не случайность, а паттерн
  • Защита дохода важнее технического совершенства

Заключение: метафора проекта

«ИИ забирает у человека мотыгу и даёт ему пульт от дистанционно управляемого трактора».

Но в этом проекте пульт показал кое-что ещё: трактор ехал не туда, куда говорил водитель.

Проект демонстрирует три ключевых принципа моей работы:

  1. Стратегия важнее технологии. Поэтапный подход спас проект от провала.
  2. Финансовое мышление. Каждый технический риск оценивался через призму потерь и ROI — это помогло защищать бюджет и масштабировать.
  3. Международный масштаб. Успешно внедряем решения за рубежом, соблюдая местное законодательство и работая с партнёрами.

Следующие шаги

  • Сбор первичных результатов: 90 дней для отладки алгоритма
  • Масштабирование: переход с 12 на 56 автобусов к апрелю 2026 года
  • Установка специализированных камер для повышения точности до 99.5%+
  • Интеграция с электробусами: переговоры с поставщиком систем
  • Адаптация решения для других штатов Индии и соседних стран
Читать оригинал