Распознавание документов на Steam Deck. А нужен ли мне мой ноутбук?

d39d314843bbd48233b404ae47910222.png

Привет, Хабр! Как вы знаете, мы в Smart Engines не только любим распознавать документы, но и распознавать очень разные документы на очень разных устройствах, от Odroid до Эльбруса.

Недавно у нас в руках оказалась игровая консоль 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 и, если вам интересно узнать о ней больше с геймерской точки зрения, рекомендуем вот этот обзор от Pixonic.

Еще одной интересной особенностью 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 при помощи Smart ID Engine v2.0.0

Распознавание греческого паспорта на Steam Deck при помощи Smart ID Engine v2.0.0

Итак, давайте испытаем Steam Deck в задаче распознавания документов и сравним его производительность с обычным десктопом. В качестве последнего будет выступать уже немного потрепанный ноутбук Lenovo ThinkPad P1 под управлением Arch Linux. Сравнение релевантных технических характеристик приведено в таблице ниже.

Характеристика

Геймерский Steam Deck

Рабочая лошадка ThinkPad P1

Операционка

Steam OS 3.4.8

Arch Linux

Версия ядра

5.13.0-valve36–1-neptune

6.1.6-arch-1–1

CPU

AMD Custom APU 0405 2.8 GHz

Intel i7–8750H 2.2 GHz

Ядра (треды)

4 (8)

6 (12)

RAM

16 Gb

16 Gb

Запускаемые бинарники были абсолютно идентичны, и каждый раз при запуске были задействованы все ядра CPU.

1. Распознавание машиночитаемых зон при помощи Smart Code Engine v2.0.0

Начнем мы с простого — с распознавания машиночитаемых зон (MRZ) международных документов. В качестве тестового пакета для распознавания MRZ были взяты 100 изображений искусственно сгенерированных муляжей греческого паспорта из датасета MIDV-2020. 

Все 100 изображений были загружены и обработаны на Steam Deck за 9.466 сек. (среднее по 3-м запускам), или по 95 мс на одно изображение. На ноутбуке эта же задача заняла чуть дольше: 10.365 сек., или по 104 мс на одно изображение.

2. Распознавание паспортов при помощи 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 сек.

3. Просто распознавание текста при помощи Smart Document Engine v2.0.0

Наконец, замерим распознавание произвольного текста на русском языке. В качестве тестового пакета был взят учебник для средней школы «Астрономия» Б.А. Воронцова-Вельяминова (Издательство «Просвещение», Москва, 1966 г.) на 165 страницах. Исходник был в формате DJVU, перед распознаванием он был сконвертирован в набор JPG-ов с разрешением 300 DPI при помощи ImageMagick.

Распознавание текста на русском языке на Steam Deck при помощи Smart Document Engine v2.0.0

Распознавание текста на русском языке на Steam Deck при помощи Smart Document Engine v2.0.0

Все 165 изображений были обработаны на Steam Deck за 109.134 сек. (среднее по 3-м запускам), или по 661 мс на изображение. Ноутбук справился за 105.365 сек., т.е. по 639 мс на изображение.

Все проведенные замеры:

Задача

Steam Deck

ThinkPad P1

Суммарно

Один файл

Суммарно

Один файл

MRZ

9.466 сек

95 мс

10.365 сек

104 мс

Греческий паспорт

15.574 сек

156 мс

14.708 сек

147 мс

Паспорт РФ

26.292 сек

263 мс

30.153 сек

302 мс

«Астрономия» Б.А. Воронцова-Вельяминова

109.134 сек

662 мс

105.365 сек

639 мс

Даже несколько удивительно, как случайно попавшиеся под руку и совсем непохожие друг на друга железки показали настолько близкие результаты. Сама по себе производительность Steam Deck не очень удивляет — все-таки на борту современный процессор, предназначенный для хорошей работы современных игрушек.

Но вот смотрю я на свой ThinkPad, на внешний монитор, внешнюю клавиатуру и мышь, и думаю — может быть, я и без него уже смогу обойтись? Эх, жалко порт у Steam Deck всего один, без докстанции подключать все это добро к консоли не очень эргономично.

Надеемся, что наш небольшой эксперимент показался вам интересным. С точки зрения практического использования Steam Deck, конечно, не совсем подходит для распознавания документов хотя бы по эргономическим соображениям (эх, вот если бы в нем была камера…). Не приходит на ум, как использовать в этой задаче джойстики, акселлерометр и тому подобное добро. Но если мы придумаем, как их применить в связке с каким-нибудь другим нашим софтом, то обязательно про это напишем.

© Habrahabr.ru