OCR для уравнений и формул на платформе iOS (Xcode)

В настоящее время я разрабатываю приложение, которое использует камеру устройства с поддержкой iOS, чтобы распознавать уравнения на фотографии, а затем сопоставлять их с правильным уравнением в библиотеке или базе данных - в основном это сканер уравнений. Например, вы можете сканировать изображение принципа неопределенности или уравнения Шредингера, и устройство iOS сможет информировать имя пользователя и некоторые отзывы.

Мне было интересно, как реализовать это с помощью Xcode, я думал об использовании инфраструктуры с открытым исходным кодом, такой как Tesseract OCR или OpenCV, но я не уверен, как применять их к уравнениям.

Любая помощь будет принята с благодарностью. Спасибо.

1 ответ

Вот почему это супер амбициозно. То, что делает OCR, в основном использует ограниченный набор точек и пытается сопоставить его с одним из нескольких членов очень маленького набора. То, о чем вы говорите, больше зависит от идиомы, чем от уровня персонажа. Например, если я представляю правило Байеса как уравнение, у меня есть что-то вроде:

P(A|B) = P(B|A)P(A)/P(B)

Даже если он распознает каждый из этих символов успешно, вы должны иметь его, затем закрепить особенности в уравнении для семейств уравнений. Не говоря уже о том, что это только одно представление правила Байеса. Есть и другие, которые используют Sigma Notation (вариант LaPlace), а некоторые используют журналы, поэтому они не имеют специального случая 0.

Это, кстати, может быть сделано с Байесом. Вот несколько соображений по этому поводу:

  • Сначала вам придется рассматривать уравнения как классификаторы, и вам придется описывать их с точки зрения набора функций, например, наличия Sigma Notation или приложения журнала.
  • Затем система будет обучена, показывая все уравнения, которые вы хотите, чтобы распознать, по-видимому, несколько вариаций каждого (в соответствии с выше). Тогда эти классификации будут иметь распределения функций.
  • Наконец, при отображении нового уравнения система должна будет найти каждую из этих функций, а затем пропустить классификацию и вычислить общую вероятность того, что уравнение соответствует данной классификации.

Вот как делается 90% спамовых движков, но там они имеют только две классификации: спам, а не спам, а представления функций нелепо просты: просто отношения слов в разных типах документов.

Интересная проблема, несомненно, простой ответ.

licensed under cc by-sa 3.0 with attribution.