Обнаружение текста естественной сцены - одна из сложных задач компьютерного зрения. Это связано с тем, что текст в естественной сцене имеет слишком много вариаций шрифта, условий освещения, меньше текста и больше нетекстовых областей. В отличие от набора данных mnsit, где у нас есть рукописные цифры на переднем и заднем плане, с такими изображениями становится очень легко работать. Основная цель этого поста - обучить классификатор текста естественной сцены.
Примечание: это сообщение в блоге частично мотивировано обнаружением текста в естественной сцене MATLAB. Я настоятельно рекомендую просмотреть их примерный код, чтобы получить представление об обнаружении текста сцены. Это серия или сообщение в блоге (1 и 2 работают над этим), в этом посте я покажу, как использовать HOG и SVM для классификации текста естественной сцены (второй блог, чтобы получить вероятного кандидата персонажа с помощью MSER .. Я работаю над Это)
#Steps требует обучения классификатора для текста и не для текста:
Это проблема классификации из двух частей. В первой части мы сгенерируем вероятных кандидатов в символы, а позже обучим классификатор, чтобы удалить ложное срабатывание, используя метод классификации 2 классов (в нашем случае текстовый против нетекстового),
Алгоритм:
- Чтение набора данных входного изображения (текста).
- Используйте дескриптор функции MSER для вероятных кандидатов символов
- Используйте некоторые дескрипторы формы (например, твердость, размер, эксцентриситет и т. Д.) Для каждой капли.
- Использовать порог и удалить нетекстовую область на основе вышеуказанных функций
# Распознать истинных кандидатов в символы и удалить все ложные срабатывания (нетекстовые) из обнаруженных нами кандидатов на предыдущем шаге
Алгоритм:
- Чтение вводимых текстовых данных
- Разделение на набор для обучения и тестирования (70% тренируют 30% тест)
- Используйте HOG как для положительного, так и для отрицательного образца.
- построить вектор признаков с ассоциированной меткой
- Обучить классификатор
- Проверить точность
- Используйте классификатор, чтобы удалить ложные срабатывания, полученные от первого алгоритма
- Выполнено.
Резюме и заключение
Результаты обнаружения после использования случайного леса: Как мы видим, мы получили все ограничивающие рамки символов и успешно удалили все ложные срабатывания, полученные на этапе генерации кандидатов. Просто используя 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
использованная литература: