Оптимизация OCR на мобильных: с 5 секунд до 1 (и даже меньше) — 25 февраля 2026 г. в 11:16:08.932
Оптимизация OCR на мобильных: с 5 секунд до 1 (и даже меньше) Автор статьи на DEV Community разрабатывает приложение, которое захватывает экран телефона, распознаёт текст и переводит его. Изначально весь цикл занимал 4–5 секунд. Для реалтайм сценариев (например, перевод игрового меню или чата) это неприемлемо. Задача была уложиться в секунду. Профилирование показало, что 80% времени съедали два этапа: предобработка изображения (800мс) и OCR-инференс (2500мс). Остальное — захват экрана, вызов API перевода, рендеринг — тоже в итоге оптимизировали, но основной выигрыш был не там. В качестве выводов автор предлагает пять советов, которые пригодятся всем, кто работает с OCR на устройстве: 1. Не скармливайте OCR-движку полноразмерное изображение. Экранный текст высококонтрастный, поэтому даунскейл до ~1280px по большей стороне почти не роняет точность, зато кратно ускоряет обработку. 2. Сначала дешёвая детекция текстовых областей, потом дорогой OCR только по ним. На типичном экране приложения текст занимает 30–40% площади: нет смысла гонять инференс по остальным 60–70%. 3. Используйте модель, заточенную под конкретную письменность. Если прогнать латинский распознаватель по китайскому, японскому или корейскому тексту, потратите время и получите мусор. Определяйте тип письменности заранее: по настройкам пользователя или по предыдущим результатам. 4. Параллельте обработку регионов. Если на экране несколько текстовых блоков, их можно распознавать одновременно на разных ядрах. На мобильных чипах это может дать 20–30% ускорения. 5. Кешируйте результаты через перцептуальный хеш (короткий «отпечаток» изображения, основанный на визуальном сходстве, а не побайтовом совпадении). Экран между захватами часто почти не меняется (мигнул курсор, сдвинулась анимация), а перезапускать OCR на практически идентичных кадрах как минимум странно. Итог экспериментов: на мидренж-чипе (Snapdragon 695) пайплайн ускорился с ~4100мс до ~800мс. На флагманах до 400-500мс. Код можно посмотреть в оригинале: https://dev.to/joe_wang_6a4a3e51566e8b52/optimizing-ocr-performance-on-mobile-from-5-seconds-to-under-1-second-332m @mobi_dev (теперь и в Max)

