Мы в компании Smart Engines не просто любим распознавать документы. Нам нравится распознавать самые разные документы на самых разных устройствах, от Odroid до Эльбруса. А недавно к нам в руки попала игровая консоль Steam Deck. Мы решили проверить, насколько шустро она справляется с распознаванием по сравнению с обычным ноутбуком. Если вам интересно посмотреть на результаты бенчмарка Steam Deck в не совсем обычной для нее задаче, то приглашаем к прочтению нашей статьи.
Что такое Steam Deck?
Steam Deck –портативная игровая консоль от компании Valve, анонсированная в 2021 и поступившая в продажу в 2022 году. Из коробки девайс управляется операционкой Steam OS (на базе Arch Linux) и весьма интересным кастомным гибридным процессором от AMD на базе Zen 2 и RDNA 2. Помимо предустановленной Steam OS производитель не запрещает устанавливать и другие операционки (например, Windows) и даже втыкать сторонние железки (например, RX 6900 XT).
Еще одной интересной особенностью Steam Deck является возможность переключения в режим рабочего стола («Desktop Mode»), в котором тоже можно играть в игры (настроив предварительно обработку ивентов, поступающих с контроллера), а еще с помощью которого можно пользоваться девайсом как обычным десктопом под управлением Steam OS. Тем самым, на интересующий нас (ввиду профдеформации) вопрос — а как быстро Steam Deck будет распознавать документы — ответ получить совсем несложно, нужно просто собрать и запустить на нем наш софт.
Что еще более характерно, поскольку Steam OS основана на Arch Linux, не пришлось ничего дополнительно собирать — бинарники, собранные на стоящем рядом ноутбуке с Arch Linux, без каких-либо вопросов сразу запустились на Steam Deсk. Даже установить банальный софт для записи видео с экрана simplescreenrecorder было несколько сложнее (чтобы установить что-то из pacman, необходимо сначала разрешить системе делать изменения в /usr, что делается командой $ steam-readonly disable. Утверждается, что после обновления Steam OS все такие изменения в /usr затрутся, но это проблема не сегодняшнего дня).
Проверяем Steam Deck в деле
Итак, давайте испытаем Steam Deck в задаче распознавания документов и сравним его производительность с обычным десктопом. В качестве последнего будет выступать уже немного потрепанный ноутбук Lenovo ThinkPad P1 под управлением Arch Linux. Сравнение релевантных технических характеристик приведено в таблице ниже.
Запускаемые бинарники были абсолютно идентичны, и каждый раз при запуске были задействованы все ядра CPU.
Распознавание машиночитаемых зон при помощи Smart Code Engine v2.0.0
Начнем мы с простого – с распознавания машиночитаемых зон (MRZ) международных документов. В качестве тестового пакета для распознавания MRZ были взяты 100 изображений искусственно сгенерированных муляжей греческого паспорта из датасета MIDV-2020.
Все 100 изображений были загружены и обработаны на Steam Deck за 9.466 сек. (среднее по 3-м запускам), или по 95 мс на одно изображение. На ноутбуке эта же задача заняла чуть дольше: 10.365 сек., или по 104 мс на одно изображение.
Распознавание паспортов при помощи Smart ID Engine v2.0.0
Перейдем к распознаванию уже не только машиночитаемых зон, но и остальных полей, которые могут быть на удостоверяющем личность документе. В качестве тестовых пакетов были взяты все те же 100 фотографий муляжей греческого паспорта, а также 100 фотографий муляжей 3-й страницы паспорта РФ из датасета MIDV-2020.
Все 100 изображений греческого паспорта, но уже с поиском и распознаванием полного набора полей, были обработаны на Steam Deck за 15.574 сек. (среднее по 3-м запускам), т.е. по 156 мс на изображение, и за 14.708 сек. на ThinkPad P1, 147 мс на изображение, на сей раз чуть быстрее, чем на консоли.
100 изображений муляжей паспорта РФ, при распознавании которого используется другой принцип поиска документа и полей, были обработаны на Steam Deck за 26.292 сек. и чуть медленнее на ноутбуке: за 30.153 сек
Просто распознавание текста при помощи Smart Document Engine v2.0.0
Наконец, замерим распознавание произвольного текста на русском языке. В качестве тестового пакета был взят учебник для средней школы «Астрономия» Б.А. Воронцова-Вельяминова (Издательство «Просвещение», Москва, 1966 г.) на 165 страницах. Исходник был в формате DJVU, перед распознаванием он был сконвертирован в набор JPG-ов с разрешением 300 DPI при помощи ImageMagick.
Все 165 изображений были обработаны на Steam Deck за 109.134 сек. (среднее по 3-м запускам), или по 661 мс на изображение. Ноутбук справился за 105.365 сек., т.е. по 639 мс на изображение.
Все проведенные замеры:
Даже несколько удивительно, как случайно попавшиеся под руку и совсем непохожие друг на друга железки показали настолько близкие результаты. Сама по себе производительность Steam Deck не очень удивляет — все-таки на борту современный процессор, предназначенный для хорошей работы современных игрушек.
Но вот смотрю я на свой ThinkPad, на внешний монитор, внешнюю клавиатуру и мышь, и думаю — может быть, я и без него уже смогу обойтись? Эх, жалко порт у Steam Deck всего один, без докстанции подключать все это добро к консоли не очень эргономично.
Надеемся, что наш небольшой эксперимент показался вам интересным. С точки зрения практического использования Steam Deck, конечно, не совсем подходит для распознавания документов хотя бы по эргономическим соображениям (эх, вот если бы в нем была камера…). Не приходит на ум, как использовать в этой задаче джойстики, акселлерометр и тому подобное добро. Но если мы придумаем, как их применить в связке с каким-нибудь другим нашим софтом, то обязательно про это напишем.