Создание приложения было вдохновлено личными потребностями. Вот что произошло. Однажды я захотел проработать свои подчеркивания в бумажной книге, которую, как я думал, взял с собой в новую квартиру, но ошибался. И я тоже не мог найти его в родительском доме. Я потерял это, и, что более важно, я потерял всю работу, которую проделал, чтобы подчеркнуть важные части. И тут возникла идея - что, если у меня есть способ оцифровывать подчеркнутые части, просто отсканировав страницу с помощью какого-нибудь интеллектуального приложения для обработки изображений. Сам как программист знал, что это, скорее всего, возможно. Изучив существующие приложения, я пришел к выводу, что на самом деле такого приложения нет ни в виде веб-сайта, ни в качестве мобильного приложения. Единственное, что я нашел, - это несколько научных статей о некоторых очень сложных алгоритмах. Мой разум сразу же начал думать о возможном решении, и я начал работать над этой идеей.

Что сработало и что не сработало

Сначала я попытался решить проблему напрямую, применив машинное обучение к набору отсканированных страниц книги с подчеркнутыми строчками, но ничего не добился. Затем у меня появилась идея применить машинное обучение, обучив tesseract (библиотека с открытым исходным кодом для OCR) с подчеркнутыми символами, чтобы различать подчеркнутые буквы как отдельные буквы, но это тоже не сработало. И, наконец, я реализовал низкоуровневый алгоритм синтаксического анализа, который работает на уровне пикселей, в результате чего подчеркнутые части разделяются. После долгой работы, некоторых настроек и множества повторений мне удалось получить очень хорошие результаты. Вы можете увидеть, какие подчеркивания приложение умеет конвертировать здесь.

Распространение его на все приложение сканера

Я также понял, что сделал алгоритм таким, чтобы он, кроме того, отслеживал все буквы, а это означало, что я мог легко расширить его, добавив в него возможность преобразования всей текстовой страницы. Таким образом, text-scan.com превратился в полноценное приложение-сканер с его отличительной особенностью - обнаружением подчеркнутых частей. В отличие от большинства существующих приложений-сканеров, которые полагаются на бесплатную библиотеку OCR Tesseract, разработанную Google, text-scan.com полагается на Google Cloud Vision API для выполнения OCR, так как это дает лучшие результаты.

Особенность выделения

Когда я реализовывал алгоритм, мне пришла в голову мысль - люди могут использовать выделение вместо подчеркивания. И когда я проверил, то обнаружил, что подозревал правильно. Люди больше выделяют, чем подчеркивают. Но поскольку выделение выполняется цветом, технически легче выделить выделенную часть, чем подчеркнутую, потому что цветные пиксели легко различимы. Так что я реализовал и эту функцию. Удивительно, но я также не обнаружил ни одного существующего приложения-сканера с функцией обнаружения выделенного текста. С начала 2019 года text-scan.com находится в стадии разработки с двумя уникальными функциями, которые делают его отличным от других приложений для сканирования.

Вы можете проверить приложение на www.text-scan.com.

Не стесняйтесь поделиться им.

Первоначально опубликовано на https://text-scan.com.