Сканирование документов и распознавание текстов с помощью VisionKit и Vision Framework на iOS
Сегодня отсканируем документ и выведем на экран распознанный текст из этого документа. Для этого не нужно устанавливать дополнительные библиотеки: пригодятся VisionKit для сканирования и Vision для распознавания текстов.
Для начала убедитесь, что на компьютере установлены Xcode 11 и iOS 13, потом создайте новый проект с поддержкой Storyboard.
Сканирование — с помощью видеокамеры. Значит, нам нужно добавить NSCameraUsageDescription в Info.plist, без этого приложение будет аварийно завершаться.
Сканирование
Для сканирования документов используем VisionKit Framework. Чтобы открыть экран для сканирования, надо создать новый образец из VNDocumentCameraViewController и вывести:
Добавьте VNDocumentCameraViewControllerDelegate во ViewController:
После нажатия «Отмены» или ошибки нужно закрыть открытый экран:
После сканирования и нажатия на «Сохранить» сработает следующее:
Каждую страницу можно обработать по отдельности.
Распознавание текстов
Со сканированием разобрались, теперь извлечем текст.
Чтобы все прошло плавно, распознавание проведем в фоновом режиме. Для этого нужно создать DispatchQueue:
Для распознавания нам нужен VNImageRequestHandler с картинкой и VNRecognizeTextRequest с опциями recognitionLevel, customWords, recognitionLanguages, а также обработчик завершения, который даст результат в текстовом виде. По завершении собираем лучшие варианты текстов и выводим на экран:
VNImageRequestHandler:
Последняя версия ViewController
Что дальше
- Документация (Vision и VisionKit).
- WWDC-видео о Speech Framework.
- GitHub-проект.