Привет, Хабр! Мы в Smart Engines постоянно пополняем список документов, которые под силу распознать нашим системам Smart ID Engine и Smart Document Engine. На сегодняшний день их количество исчисляется тысячами, но и это не предел. Новые документы на бумажных носителях продолжают возникать, а мы все так же успешно их распознаем. Причем распознаем очень быстро.  Добавлением новых документов, то есть настройкой всех подсистем для распознавания новых типов, мы обычно занимаемся сами. Ведь кто еще так хорошо знает, какую ручку нужно покрутить у нашей системы, чтобы все работало идеально. Однако в некоторых случаях пользователю может понадобиться самостоятельно добавить документы, которые требуется распознать. Например, если количество типов форм растет быстро, а распознавать их хочется уже сразу по мере появления. Или же когда по каким‑либо причинам пользователь не может нам предоставить даже один пример нужного документа. О том, что такое настройка распознавания формы и как это можно сделать самостоятельно буквально за пару минут, в этом тексте. Специально для случаев, когда клиент хочет добавить новый документ для распознавания самостоятельно, мы разработали новый продукт Smart Document Designer. Он предназначен для описания документов с жесткой структурой. Считается, что документ, а конкретнее, его страница, обладает жесткой структурой, если разные экземпляры совпадают на просвет, а отличается у них только заполнение.  Smart Document Designer позволяет описать физические свойства страниц документа, в том числе размеры, расположение интересующих объектов, а также способы получения реквизитов документа. И все это с помощью графического интерфейса, который будет понятен даже человеку, далекому от распознавания. Сгенерированное описание может сразу же быть использовано с нашим SDK Smart Document Engine.  Для работы со Smart Document Designer не требуется знаний особенностей наших подсистем, описания строятся исключительно с точки зрения физики документа. Для настройки распознавания документа с помощью Smart Document Designer достаточно всего одного примера изображения каждой из его страниц. Однако чем больше примеров с различным заполнением имеется — тем точнее мы сможем описать документ.  Шаг первый. Описание каждой из страниц документа мы условно называем «шаблоном». Чтобы создать шаблон, нужно загрузить пример изображения страницы, указать расположение углов, а также ее размер. Программа автоматически «вырежет» исходное изображение страницы по указанным границам и размеру. Это на тот случай, если кроме документа на изображении есть что‑либо еще — например, фрагмент стола или другие бумаги.  Шаг второй. Затем на шаблоне мы указываем статические объекты — неподвижные области, по которым эту страницу можно отличить от других. Выглядит это так: Шаг третий. После этого обозначаем интересующие нас объекты, которые содержат в себе заполнение документа: текст, графику, баркоды или чекбоксы. Каждый объект задается физическим расположением на шаблоне, а также набором свойств в зависимости от типа. Например, для текста указывается алфавит (набор символов, которые могут присутствовать в данном объекте), размер шрифта, способ нанесения (печать или рукопись) и т. д., а для баркода можно указать его тип — QR, DataMatrix и др. Шаг четвертый. После того, как добавлены все необходимые объекты на всех страницах, можно настроить реквизиты самого документа и их формат — то, что мы хотим видеть в результате распознавания. Все реквизиты так или иначе получаются в результате обработки объектов: это может быть простой перенос результата, может быть замена или удаление части строки, а может быть проверка на соответствие какому‑либо формату. Если в списке встроенных не нашлось нужного обработчика, то его можно реализовать самостоятельно на любимом языке программирования (C++, C#, Java, Python).  Шаг пятый. Проверить работоспособность созданных описаний можно прямо в приложении с помощью модуля верификации: он генерирует пакет настроек и запускает распознавание на заданном тестовом изображении. В результатах можно сразу увидеть, какие именно объекты нашлись, какие реквизиты документа удалось извлечь и их значения. Так, на весь процесс уходит всего пара минут. В этом видео можно увидеть, как мы настроили другую форму – согласие на обработку персональных данных.  Вот так, имея в руках только один экземпляр документа, при помощи Smart Document Designer можно без труда самостоятельно настроить систему распознавания, научить ее читать тысячи таких экземпляров и выдавать ответ в удобном вам виде.