У меня есть данные от Tesseract OCR в DataFrame. Один из столбцов в этих выходных данных представляет доверительную оценку результата OCR для отдельного слова текста в качестве результата Tesseract. Тессеракт по умолчанию, однако, борется с распознаванием рукописных символов. Я хочу использовать подход, в котором я использую информацию ограничивающего прямоугольника, которая также , предоставленную Tesseract, чтобы захватить рамку вокруг слов с низким уровнем достоверности, проверить, написаны ли они от руки, и использовать другую модель для классификации того, что рукописный текст состояний. Так что мой DataFrame, который OCR «Привет, мир, я Za c!» где «Я - Za c!» написан от руки, может выглядеть так:
conf top left width height text
1 90.0 100 50 67 14 Hello
2 92.0 100 60 67 14 world,
3 54.0 100 65 21 13 l
4 32.0 100 67 29 12 @n;
5 0.0 100 71 37 14 2ao!
6 90.0 100 77 36 12 text
...
Теперь мои фактические данные содержат много строк (более тысячи на изображение, с десятками изображений), поэтому использование .iterrows()
может быть неэффективным, я не уверен. Что мне нужно выбрать, так это все последовательных строк с conf < 60
, если существует более одной строки подряд. Мне также нужно было бы отдельно выбрать все эти группы последовательных строк с низким уровнем достоверности, потому что мне нужно будет использовать значения top
, left
, width
и height
, чтобы найти все ограничивающие рамки слова, суммируйте эти блоки вместе, чтобы собрать все отдельные блоки в один большой блок, и передайте этот новый блок модели, чтобы предсказать почерк. Итак, из примера я хотел бы выбрать:
conf top left width height text
3 54.0 100 65 21 13 l
4 32.0 100 67 29 12 @n;
5 0.0 100 71 37 14 2ao!
Я могу выбрать все строки, где conf
ниже моего порога, но мне интересно, есть ли более эффективный способ выбора последовательных строки данных, которые соответствуют этому критерию, потому что, если я выберу все значения с низкой достоверностью, то мне придется выполнить итерацию, чтобы найти все группы строк, в которых есть как минимум 2 (несколько) последовательных значения с низкой достоверностью, а затем Я должен перебрать все эти выборы, чтобы получить информацию о них, и выполнение этого для каждой страницы каждого документа кажется вычислительно сложным.
Буду очень признателен за любые советы или предложения, связанные с проблемой (даже если этот совет - лучший способ сделать то, что я пытаюсь сделать).