Решён
На чем разрабатывать нейросети для Android - фреймворки и инструменты?

Хочу сделать приложение для Android с локальной нейросетью (распознавание объектов на фото). Без отправки данных на сервер, все должно работать на устройстве.

Смотрел в сторону TensorFlow Lite, но он вроде как уже не особо развивается? Есть еще PyTorch Mobile, ONNX Runtime, какие то проприетарные от Samsung и Qualcomm.

Что реально используют в проде в 2026? На чем проще стартовать если опыт в ML есть, а вот мобильная разработка на уровне пары туториалов?

Желательно чтобы можно было конвертнуть готовую модель из PyTorch.

UPDATE: В итоге пошел через ONNX Runtime, конвертация из PyTorch прошла без проблем. Latency на Pixel 7 около 40ms, для моих задач хватает.
Решение
89
Участник • 2 ответа

Работаю в компании которая делает ML-фичи для мобилок, расскажу что реально используем.

TensorFlow Lite / LiteRT
Плюсы: отличная поддержка делегатов (GPU, NNAPI, Hexagon DSP), много готовых моделей в Model Garden, хорошая интеграция с Android Studio.
Минусы: конвертация из PyTorch иногда боль, не все опы поддерживаются.

PyTorch Mobile / ExecuTorch
Плюсы: если модель на PyTorch, конвертация тривиальная. ExecuTorch новый и быстрый.
Минусы: экосистема беднее чем у TFLite, меньше примеров под Android.

ONNX Runtime
Плюсы: универсальный формат, конвертеры из всего. Поддержка NNAPI есть.
Минусы: APK раздувается, иногда тупит на специфичных архитектурах.

MediaPipe
Плюсы: готовые пайплайны для типовых задач (лица, руки, позы). Очень быстро.
Минусы: если нужна кастомная модель - придется повозиться.

Для твоего кейса (PyTorch модель + object detection + минимум геморроя) я бы смотрел на ONNX Runtime или ExecuTorch. TFLite тоже норм если готов потратить время на конвертацию.

На Qualcomm чипах обязательно попробуй QNN делегат, прирост скорости в 2-3 раза на некоторых моделях.

Аватар Вадим Прохоров

Спасибо за разбор! А ExecuTorch уже стабильный? Смотрел доки, там везде "experimental" написано

Аватар Сергей Крышин

В проде пока не юзали, но на хакатоне гонял - работает. Для пет проекта норм, для прода я бы пока TFLite или ONNX брал

24
Участник • 2 ответа

TFLite живее всех живых, не слушай хейтеров. Google его активно пилит, просто ребрендинг в LiteRT произошел.

Для твоей задачи (object detection на девайсе) это самый обкатанный путь. Конвертер из PyTorch есть, документация огромная, комьюнити большое.

31
Эксперт • 3 ответа

Зачем велосипед изобретать? Бери ML Kit от Google, там object detection из коробки. Три строчки кода и работает.

val labeler = ImageLabeling.getClient(ImageLabelerOptions.DEFAULT_OPTIONS)
labeler.process(image)
    .addOnSuccessListener { labels -> /* profit */ }

Если не нужна какая то супер кастомная модель - это самый быстрый путь.

Аватар Nastya Bumblebee

ML Kit под капотом все равно данные на сервер гоняет для некоторых фич. Автор же писал что все локально надо

15
Участник • 5 ответов

ncnn посмотри. Китайцы из Tencent делают, опенсорс. Очень быстрый на ARM, оптимизирован под Vulkan. Документация правда на китайском в основном, но примеры понятные.

0
Участник • 6 ответов

а почему не просто запустить onnx в вебвью через onnxruntime-web? кроссплатформенно и не надо с нативом возиться

22
Участник • 1 ответ

Если у тебя Qualcomm чип (а это 80% андроидов), обязательно глянь Qualcomm AI Hub. Там готовые оптимизированные модели под их железо. YOLO, EfficientNet, всякое разное. Конвертер из ONNX тоже есть.

Мы на работе перешли с TFLite на их стек, инференс ускорился раза в два без потери качества.

7
Участник • 1 ответ

Все эти фреймворки это полумеры. Нормальный ML на мобилках будет когда Apple и Google встроят полноценные NPU API в систему. А пока мы тут костылями обмазываемся и радуемся 30 fps на детекции кошечек.

Написать ответ

Премодерация гостей

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

Будьте вежливы и соблюдайте правила платформы.