2016-04-18 3 views
3

Я пытаюсь найти способ определить, нужно ли поворачивать изображение, чтобы текст был выровнен по горизонтали. И если это нужно, чтобы повернуть, то на сколько градусов?Как определить, нужно ли поворачивать изображение

Я отправляю изображения в tesseract и для того, чтобы tesseract был эффективным, текст в изображениях должен быть выровнен по горизонтали.

Я ищу способ сделать это без зависимости от метаданных «Ориентация» на изображении.

Я думал о следующих способах сделать это:

  1. Поворот изображения на 90 градусов по часовой стрелке четыре раза и отправить все четыре изображения в тессеракт. Это не идеально, потому что нужно обрабатывать один образ 4 раза.
  2. Используйте преобразование линии hough, чтобы увидеть, являются ли линии вертикальными или горизонтальными. Если они вертикальны, поверните изображение. Таким образом, изображение, возможно, нужно будет поворачивать на 180 градусов. Поэтому я не уверен, насколько это было бы эффективно.

Мне интересно, есть ли другие способы для этого, используя OpenCV, imageMagik или любые другие методы обработки изображений.

ответ

0

Aytempting ОСR на всех 4 направлениях кажется разумным выбором, и я сомневаюсь, что вы найдете более надежную эвристику.

Если скорость является проблемой, вы можете сначала открыть небольшую часть изображения. Выберите прямоугольную область, у которой есть достаточное количество краевых пикселей и соотношение «белый/черный» для текста, затем отправьте это на tesseract в разных ориентациях. С небольшим регионом вы можете даже попытаться выполнить более мелкие шаги, чем 90 °, или объединить его с другой эвристикой, такой как Hough.

Если вы помните наиболее вероятную ориентацию на основе предыдущих изображений и останавливаетесь, как только ориентация будет успешно обработана tesseract, вам, вероятно, даже не придется пробовать большинство ориентаций в большинстве случаев.

0

Если у вас есть 1000 изображений, которые говорят горизонтально или вертикально, вы можете изменить размер этих изображений до 224x224, а затем настроить эту сверкающую нейронную сеть, такую ​​как AlexNet или VGG. Если вы хотите узнать, сколько правильных поводов сделать для изображения, вы можете установить метки как число часовых вращений, например 0,1,2,3.

http://caffe.berkeleyvision.org/gathered/examples/finetune_flickr_style.html

Смежные вопросы