ABBYY Labs – what's new?

    Время подводить итоги первого проекта ABBYY Labs. Напомню, что цель проекта – дать возможность студентам в процессе обучения решать задачи, в большей степени приближенные к реальным, чем это бывает в обычном учебном процессе. И «погрузить» их при этом в соответствующее окружение: среда, в которой проходила разработка, – реально действующая IT-компания.

    Студенты факультета инноваций и высоких технологий МФТИ были озадачены распознаванием формул и экспортом в TeX (изначальная постановка задачи – тут).

    Что у них получилось?

    В качестве инструмента для распознавания самих символов был взят ABBYY Mobile OCR Engine for Windows, который, конечно, клёвый, но под формулы совершенно «не заточен». Студенты были разбиты на 2 группы: одна занималась анализом, а вторая – распознаванием и экспортом.

    Анализ

    Анализ изображения в OCR – это процесс нахождения блоков, содержащих разную с точки зрения OCR информацию. «Вон там картинка, а там – текст», – говорит анализатор. Исходный движок формул не видит – нет у него просто такого понятия. Это ребятам надо было постараться исправить.

    Для контроля качества своей работы студенты использовали хитрый ход. Для большого количества документов в формате TeX они получили информацию о том, где на каждой странице расположена формула. Как? Взяли исходники математических статей и скомпилировали TeX-компилятором в картинки. Именно их собирались распознавать. Потом те же исходники они «подпортили»: фон для формул сделали черным, а цвет текста вне формул сделали белым. И тоже скомпилировали в картинки. На подпорченных картинках оказались только черные прямоугольники «формул», которые легко отличить и узнать таким образом их «истинные» координаты. После этого исходные, «неподпорченные» изображения прогоняли через анализатор и смотрели, насколько сильно отличаются найденные координаты прямоугольника формулы от достоверно определённых координат чёрного прямоугольника. Вот и готова автоматическая система проверки качества!

    Задача выделения прямоугольника, в котором точно содержится формула, – это самая сложная часть проекта. Для решения её были выделены признаки с весами (т.е. значимостями этих признаков), варьируя которые можно улучшать (или ухудшать :) качество анализа. Признаки были нескольких видов:
    • Словарные признаки искали на предварительно распознанном изображении математические функции, такие как sin, lim, f(x).
    • Геометрические искали слишком широкие или слишком высокие «палки» – дроби, интегралы, части матриц.
    • Признаки параметров текста пытались определить по межстрочному расстоянию (если в текст закралась формула, межстрочное расстояние будет больше).

    Что из этого получилось:
    • Такие прямоугольники строк нашёл обычный Mobile OCR Engine (напоминаю, к распознаванию формул никак не приспособленный):
    • Такой прямоугольник формулы нашёл анализатор, который в курсе существования объекта «формула»:
    Наверняка существует набор весов для признаков, который будет давать лучшие результаты. С учётом наличия готовой системы проверки качества, это задача времени, ведь поиск лучших весов можно в значительной степени автоматизировать.

    Распознавание

    Одной из задач было «допиливание» распознавания, причём речь не о распознавании символов, а о получении данных об их взаимном расположении. Обычный распознаватель ориентируется на строки текста, а математическая формула может быть «многоэтажной», расширяя строку. Причём даже банальные два «этажа» дроби могут ставить обычный распознаватель в тупик: он, скорее всего, надёргает из текста «-» (из которых состоит горизонтальная черта дроби), цифр и букв в беспорядке. Обзовёт всё это верхними и нижними индексами и перемешает. Ребята смогли добиться улучшения распознавания дробей, степеней, верхних и нижних индексов. Причем не только индексов справа сверху или справа снизу от символа, но и пределов в формуле суммы.

    Экспорт

    В результате распознавания получается дерево из операторов и операндов. В процессе обхода дерева получается строка для TeX. С этим проблем не возникло.




    Впечатления


    Сами сотрудники группы Math OCR (те самые студенты) довольны результатами. Они освоили инструменты разработки и получили опыт программирования, отличный, по их мнению, от того, который они получили в обычном учебном процессе. Нам же кажется, что из ребят получилась слаженная команда, и это повысило качество их работы.

    На этом, конечно же, проект ABBYY Labs не закрывается. Ждите новостей в следующем учебном году!
    Метки:
    • +20
    • 10,5k
    • 7
    ABBYY 100,78
    Action information
    Поделиться публикацией
    Комментарии 7
    • +13
      На фотке тоже студентка МФТИ?
      • +11
        Нет. Но миленькая, согласитесь :)
      • –4
        Про тестирование — интересно, хорошая подробность.
        Все остальное — рекламная вода.
        • –6
          Я бы вдул
          • 0
            Начиная с какой версии Finereader умение распознавать формулы в него встроено?
            • 0
              Пока что нет такой версии. Когда будет — обязательно появится анонс на Хабре :)
              • 0
                А будет ли? Больше года прошло, как уже было чем хвастаться, а пока даже планов по интеграции не показывали.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое