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

Примечание: это сообщение в блоге частично мотивировано обнаружением текста в естественной сцене MATLAB. Я настоятельно рекомендую просмотреть их примерный код, чтобы получить представление об обнаружении текста сцены. Это серия или сообщение в блоге (1 и 2 работают над этим), в этом посте я покажу, как использовать HOG и SVM для классификации текста естественной сцены (второй блог, чтобы получить вероятного кандидата персонажа с помощью MSER .. Я работаю над Это)

#Steps требует обучения классификатора для текста и не для текста:

Это проблема классификации из двух частей. В первой части мы сгенерируем вероятных кандидатов в символы, а позже обучим классификатор, чтобы удалить ложное срабатывание, используя метод классификации 2 классов (в нашем случае текстовый против нетекстового),

Алгоритм:

  1. Чтение набора данных входного изображения (текста).
  2. Используйте дескриптор функции MSER для вероятных кандидатов символов
  3. Используйте некоторые дескрипторы формы (например, твердость, размер, эксцентриситет и т. Д.) Для каждой капли.
  4. Использовать порог и удалить нетекстовую область на основе вышеуказанных функций

# Распознать истинных кандидатов в символы и удалить все ложные срабатывания (нетекстовые) из обнаруженных нами кандидатов на предыдущем шаге

Алгоритм:

  1. Чтение вводимых текстовых данных
  2. Разделение на набор для обучения и тестирования (70% тренируют 30% тест)
  3. Используйте HOG как для положительного, так и для отрицательного образца.
  4. построить вектор признаков с ассоциированной меткой
  5. Обучить классификатор
  6. Проверить точность
  7. Используйте классификатор, чтобы удалить ложные срабатывания, полученные от первого алгоритма
  8. Выполнено.

Резюме и заключение

Результаты обнаружения после использования случайного леса: Как мы видим, мы получили все ограничивающие рамки символов и успешно удалили все ложные срабатывания, полученные на этапе генерации кандидатов. Просто используя RF и меньше данных. Мы можем получить точность около 85%. В следующем посте я покажу, как повысить точность и развернуть фреймворк глубокого обучения с помощью библиотеки Keras.

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

код для текстового нетекстового классификатора:

Results:
on train set
precision    recall  f1-score   support
avg / total       0.85      0.78      0.77      9674
on testset
precision    recall  f1-score   support
avg / total       0.81      0.70      0.67      4766

использованная литература: